21#include "cc_tools_qt/details/ToolsFieldBase.h"
22#include "cc_tools_qt/field/ToolsBundleField.h"
24#include "comms/field/Bundle.h"
37template <
typename TField>
38class ToolsBundleFieldImpl :
public ToolsFieldBase<cc_tools_qt::field::ToolsBundleField, TField>
40 using Base = ToolsFieldBase<cc_tools_qt::field::ToolsBundleField, TField>;
43 static_assert(comms::field::isBundle<Field>(),
"Must be of Bundle field type");
46 using Ptr =
typename Base::Ptr;
47 using ActPtr =
typename Base::ActPtr;
49 explicit ToolsBundleFieldImpl(Field& fieldRef)
54 ToolsBundleFieldImpl(
const ToolsBundleFieldImpl&) =
default;
55 ToolsBundleFieldImpl(ToolsBundleFieldImpl&&) =
default;
56 virtual ~ToolsBundleFieldImpl() noexcept = default;
58 ToolsBundleFieldImpl& operator=(const ToolsBundleFieldImpl&) = delete;
61 virtual Ptr cloneImpl()
override
63 return ActPtr(
new ToolsBundleFieldImpl(Base::field()));
66 virtual bool isHiddenSerializationImpl()
const override
72template <
typename TField>
73auto makeBundleField(TField& field)
75 return std::make_unique<ToolsBundleFieldImpl<TField>>(field);