14#include <parcel/parcel.h>
35template <
typename Self, parcel::FixedString Name>
36class Event :
public parcel::SelfStructCell<Self> {
42 static constexpr std::string_view
kind_id = parcel::id_join_v<event_kind_prefix, event_name_v>;
45 parcel::FieldsBuilder<Self> b;
46 return Self::event_field_descriptors(b).build();
63template <
typename... Fs>
67 return flags::FlagSet::of<Fs...>();
89 for (
const auto&
f : T::default_flags_value()) {
CRTP library base for conduit events.
Definition event.hpp:36
static constexpr std::string_view event_name_v
Bare event name (Name) — used by the bus to key listeners.
Definition event.hpp:39
static auto field_descriptors()
Definition event.hpp:44
static constexpr std::string_view kind_id
Wire-stable kind id ("conduit:event:" + Name).
Definition event.hpp:42
static parcel::DisplayInfo display_info()
Cell-level descriptive display info.
Definition event.hpp:51
Conduit flag tags, built atop comms::Flag / comms::FlagSet.
flags::FlagSet collect_default_flags()
Definition event.hpp:86
comms::FlagSet FlagSet
Definition flags.hpp:32
Definition builder.hpp:22
constexpr std::string_view event_kind_prefix
Wire-kind prefix shared by every conduit event type.
Definition event.hpp:21
Mixin marker.
Definition event.hpp:64
void conduit_default_flags_tag
Definition event.hpp:65
static flags::FlagSet default_flags_value()
Definition event.hpp:66
Non-intrusive trait.
Definition event.hpp:74
static flags::FlagSet default_flags()
Definition event.hpp:75