Concept ensuring a type is a fully valid CrunchMessage.
More...
#include <crunch_messages.hpp>
template<typename Message>
std::regular<Message> && HasConstexprGetFields<Message> &&
tuple_members_are_valid_fields<decltype(Message{}.get_fields())> &&
has_unique_field_ids<decltype(Message{}.get_fields())> &&
HasConstexprValidate<Message>
Concept ensuring a type is a fully valid CrunchMessage.
Definition: crunch_messages.hpp:119
Concept to detect if a type quacks like a Crunch Message.
Definition: crunch_field.hpp:226
Concept ensuring a type is a fully valid CrunchMessage.
Checks:
- Regular type (copyable, default constructible, etc).
- Has
message_id and get_fields().
- All fields in
get_fields() are valid.
- Field IDs are unique.
- Has a
Validate() method returning std::optional<Error>.