|
|
|
#pragma once
|
|
|
|
#include "actiongenintfile.h"
|
|
|
|
#include "actioninfo.h"
|
|
|
|
#include "actiontsc.h"
|
|
|
|
#include "actionuv.h"
|
|
|
|
#include "data.h"
|
|
|
|
|
|
|
|
using michlib::errmessage;
|
|
|
|
|
|
|
|
template<class T, ActionID id> consteval bool MustSup()
|
|
|
|
{
|
|
|
|
static_assert(IsActionSupported<T, id>);
|
|
|
|
return true;
|
|
|
|
};
|
|
|
|
|
|
|
|
constexpr bool NEMOsup =
|
|
|
|
MustSup<NEMOData, ActionID::INFO>() && MustSup<NEMOData, ActionID::TSC>() && MustSup<NEMOData, ActionID::UV>() && MustSup<NEMOData, ActionID::GENINTFILE>();
|
|
|
|
|
|
|
|
constexpr bool NEMOBIOsup = MustSup<NEMOBIOData, ActionID::INFO>() && MustSup<NEMOBIOData, ActionID::TSC>();
|
|
|
|
|
|
|
|
constexpr bool HYCOMsup =
|
|
|
|
MustSup<HYCOMData, ActionID::INFO>() && MustSup<HYCOMData, ActionID::TSC>() && MustSup<HYCOMData, ActionID::UV>() && MustSup<HYCOMData, ActionID::GENINTFILE>();
|
|
|
|
|
|
|
|
constexpr bool AVISOsup =
|
|
|
|
MustSup<AVISOData, ActionID::INFO>() && MustSup<AVISOData, ActionID::TSC>() && MustSup<AVISOData, ActionID::UV>() && MustSup<AVISOData, ActionID::GENINTFILE>();
|
|
|
|
|
|
|
|
constexpr bool AVISOLsup = MustSup<AVISOLOCALData, ActionID::INFO>() && MustSup<AVISOLOCALData, ActionID::TSC>() && MustSup<AVISOLOCALData, ActionID::UV>() &&
|
|
|
|
MustSup<AVISOLOCALData, ActionID::GENINTFILE>();
|
|
|
|
|
|
|
|
constexpr bool BINFILEsup = MustSup<BINFILEData, ActionID::INFO>() && MustSup<BINFILEData, ActionID::TSC>() && MustSup<BINFILEData, ActionID::UV>();
|
|
|
|
|
|
|
|
template<class T, ActionID id> static constexpr bool DisableAction = false;
|
|
|
|
|
|
|
|
// Exceptions
|
|
|
|
template<> constexpr bool DisableAction<BINFILEData, ActionID::GENINTFILE> = true;
|
|
|
|
template<> constexpr bool DisableAction<MODISBINLOCALData, ActionID::UV> = true;
|
|
|
|
template<> constexpr bool DisableAction<MODISBINLOCALData, ActionID::GENINTFILE> = true;
|
|
|
|
template<> constexpr bool DisableAction<NEMOBIOData, ActionID::UV> = true;
|
|
|
|
template<> constexpr bool DisableAction<NEMOBIOData, ActionID::GENINTFILE> = true;
|