22#include "cc_tools_qt/details/ToolsFieldBase.h"
23#include "cc_tools_qt/field/ToolsBundleField.h"
25#include "comms/field/Bundle.h"
38template <
typename TField>
39class ToolsBundleFieldImpl :
public ToolsFieldBase<cc_tools_qt::field::ToolsBundleField, TField>
41 using Base = ToolsFieldBase<cc_tools_qt::field::ToolsBundleField, TField>;
44 static_assert(comms::field::isBundle<Field>(),
"Must be of Bundle field type");
47 using Ptr =
typename Base::Ptr;
48 using ActPtr =
typename Base::ActPtr;
50 explicit ToolsBundleFieldImpl(Field& fieldRef)
55 ToolsBundleFieldImpl(
const ToolsBundleFieldImpl&) =
default;
56 ToolsBundleFieldImpl(ToolsBundleFieldImpl&&) =
default;
57 virtual ~ToolsBundleFieldImpl() noexcept = default;
59 ToolsBundleFieldImpl& operator=(const ToolsBundleFieldImpl&) = delete;
62 virtual Ptr cloneImpl()
override
64 return ActPtr(
new ToolsBundleFieldImpl(Base::field()));
67 virtual bool isHiddenSerializationImpl()
const override
73template <
typename TField>
74auto makeBundleField(TField& field)
76 return std::make_unique<ToolsBundleFieldImpl<TField>>(field);