2 #include <score/plugins/UuidKey.hpp>
3 #include <score/serialization/VisitorInterface.hpp>
24 using is_abstract_base_tag = std::integral_constant<bool, true>;
28 virtual UuidKey<T> concreteKey()
const noexcept = 0;
38 #define MODEL_METADATA_IMPL(Model_T) \
39 static key_type static_concreteKey() noexcept \
41 return Metadata<ConcreteKey_k, Model_T>::get(); \
43 key_type concreteKey() const noexcept override \
45 return static_concreteKey(); \
47 void serialize_impl(const VisitorVariant& vis) const noexcept override \
49 score::serialize_dyn(vis, *this); \
52 #define MODEL_METADATA_IMPL_HPP(Model_T) \
53 static key_type static_concreteKey() noexcept; \
54 key_type concreteKey() const noexcept override; \
55 void serialize_impl(const VisitorVariant& vis) const noexcept override;
57 #define MODEL_METADATA_IMPL_CPP(Model_T) \
58 Model_T::key_type Model_T::static_concreteKey() noexcept \
60 return Metadata<ConcreteKey_k, Model_T>::get(); \
62 Model_T::key_type Model_T::concreteKey() const noexcept \
64 return static_concreteKey(); \
66 void Model_T::serialize_impl(const VisitorVariant& vis) const noexcept \
68 score::serialize_dyn(vis, *this); \
Definition: UuidKey.hpp:343
Generic serialization method for abstract classes.
Definition: SerializableInterface.hpp:21
Base toolkit upon which the software is built.
Definition: Application.cpp:90
The VisitorVariant struct.
Definition: VisitorInterface.hpp:26