18 BaseTestObject (QObject * parent =
nullptr)
22 explicit BaseTestObject (Uuid
id, QObject * parent =
nullptr)
26 ~BaseTestObject ()
override =
default;
27 BaseTestObject (
const BaseTestObject &) =
delete;
28 BaseTestObject &operator= (
const BaseTestObject &) =
delete;
29 BaseTestObject (BaseTestObject &&) =
delete;
30 BaseTestObject &operator= (BaseTestObject &&) =
delete;
32 friend void to_json (nlohmann::json &json_value,
const BaseTestObject &obj)
34 to_json (json_value,
static_cast<const UuidIdentifiableObject &
> (obj));
36 friend void from_json (
const nlohmann::json &json_value, BaseTestObject &obj)
38 from_json (json_value,
static_cast<UuidIdentifiableObject &
> (obj));
41 BOOST_DESCRIBE_CLASS (BaseTestObject, (UuidIdentifiableObject), (), (), ())
55class DerivedTestObject :
public BaseTestObject
61 explicit DerivedTestObject (
int some_dependency) { };
62 explicit DerivedTestObject (TestUuid
id, std::string name)
63 : BaseTestObject (
id), name_ (std::move (name))
67 [[nodiscard]] std::string name ()
const {
return name_; }
69 friend void init_from (
70 DerivedTestObject &obj,
71 const DerivedTestObject &other,
74 obj.name_ = other.name_;
77 NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE (DerivedTestObject, BaseTestObject, name_)
82 BOOST_DESCRIBE_CLASS (DerivedTestObject, (BaseTestObject), (), (), (name_))