42 using Ptr = std::unique_ptr<ToolsField>;
43 using SerialisedSeq = std::vector<std::uint8_t>;
44 using Members = std::vector<Ptr>;
52 const char* name()
const;
54 std::size_t length()
const;
60 SerialisedSeq getSerialisedValue()
const;
62 bool setSerialisedValue(
const SerialisedSeq& value);
64 QString getSerialisedString()
const;
66 bool setSerialisedString(
const QString& str);
68 void dispatch(ToolsFieldHandler& handler);
72 bool canWrite()
const;
76 Members& getMembers();
77 const Members& getMembers()
const;
78 void setMembers(Members&& members);
81 bool isReadOnly()
const;
83 void forceHiddenSerialization();
84 bool isHiddenSerialization()
const;
87 virtual const char* nameImpl()
const = 0;
88 virtual std::size_t lengthImpl()
const = 0;
89 virtual bool validImpl()
const = 0;
90 virtual bool isReadOnlyImpl()
const = 0;
91 virtual bool isHiddenSerializationImpl()
const = 0;
92 virtual SerialisedSeq getSerialisedValueImpl()
const = 0;
93 virtual bool setSerialisedValueImpl(
const SerialisedSeq& value) = 0;
94 virtual void dispatchImpl(ToolsFieldHandler& handler) = 0;
95 virtual Ptr cloneImpl() = 0;
96 virtual bool canWriteImpl()
const = 0;
97 virtual void resetImpl() = 0;
98 virtual void membersUpdatedImpl();