Reviewed-on: #1 Co-authored-by: Persson-dev <sim16.prib@gmail.com> Co-committed-by: Persson-dev <sim16.prib@gmail.com>
64 lines
2.0 KiB
C++
64 lines
2.0 KiB
C++
#pragma once
|
|
|
|
namespace sp {
|
|
namespace details {
|
|
|
|
|
|
template <typename... TOptions>
|
|
struct MessageInterfaceParsedOptions {};
|
|
|
|
template <>
|
|
struct MessageInterfaceParsedOptions<> {
|
|
static const bool HasMsgIdType = false;
|
|
static const bool HasLittleEndian = false;
|
|
static const bool HasReadOperations = false;
|
|
static const bool HasWriteOperations = false;
|
|
static const bool HasWriteId = false;
|
|
static const bool HasHandler = false;
|
|
static const bool HasValid = false;
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
template <typename T, typename... TOptions>
|
|
struct MessageInterfaceParsedOptions<option::MsgIdType<T>, TOptions...> : public MessageInterfaceParsedOptions<TOptions...> {
|
|
static const bool HasMsgIdType = true;
|
|
using MsgIdType = T;
|
|
};
|
|
|
|
template <typename... TOptions>
|
|
struct MessageInterfaceParsedOptions<option::LittleEndian, TOptions...> : public MessageInterfaceParsedOptions<TOptions...> {
|
|
static const bool HasLittleEndian = true;
|
|
};
|
|
|
|
template <typename... TOptions>
|
|
struct MessageInterfaceParsedOptions<option::ReadOperations, TOptions...> : public MessageInterfaceParsedOptions<TOptions...> {
|
|
static const bool HasReadOperations = true;
|
|
};
|
|
|
|
template <typename... TOptions>
|
|
struct MessageInterfaceParsedOptions<option::WriteOperations, TOptions...> : public MessageInterfaceParsedOptions<TOptions...> {
|
|
static const bool HasWriteOperations = true;
|
|
};
|
|
|
|
template <typename... TOptions>
|
|
struct MessageInterfaceParsedOptions<option::WriteId, TOptions...> : public MessageInterfaceParsedOptions<TOptions...> {
|
|
static const bool HasWriteId = true;
|
|
};
|
|
|
|
template <typename T, typename... TOptions>
|
|
struct MessageInterfaceParsedOptions<option::Handler<T>, TOptions...> : public MessageInterfaceParsedOptions<TOptions...> {
|
|
static const bool HasHandler = true;
|
|
using HandlerType = option::Handler<T>;
|
|
};
|
|
|
|
template <typename... TOptions>
|
|
struct MessageInterfaceParsedOptions<option::ValidCheckInterface, TOptions...> : public MessageInterfaceParsedOptions<TOptions...> {
|
|
static const bool HasValid = true;
|
|
};
|
|
|
|
} // namespace details
|
|
} // namespace sp
|