44 using Ptr = std::unique_ptr<ToolsField>;
45 using SerialisedSeq = std::vector<std::uint8_t>;
46 using Members = std::vector<Ptr>;
54 const char* name()
const;
56 std::size_t length()
const;
62 SerialisedSeq getSerialisedValue()
const;
64 bool setSerialisedValue(
const SerialisedSeq& value);
66 QString getSerialisedString()
const;
68 bool setSerialisedString(
const QString& str);
70 void dispatch(ToolsFieldHandler& handler);
74 bool canWrite()
const;
78 Members& getMembers();
79 const Members& getMembers()
const;
80 void setMembers(Members&& members);
83 bool isReadOnly()
const;
85 void forceHiddenSerialization();
86 bool isHiddenSerialization()
const;
89 virtual const char* nameImpl()
const = 0;
90 virtual std::size_t lengthImpl()
const = 0;
91 virtual bool validImpl()
const = 0;
92 virtual bool isReadOnlyImpl()
const = 0;
93 virtual bool isHiddenSerializationImpl()
const = 0;
94 virtual SerialisedSeq getSerialisedValueImpl()
const = 0;
95 virtual bool setSerialisedValueImpl(
const SerialisedSeq& value) = 0;
96 virtual void dispatchImpl(ToolsFieldHandler& handler) = 0;
97 virtual Ptr cloneImpl() = 0;
98 virtual bool canWriteImpl()
const = 0;
99 virtual void resetImpl() = 0;
100 virtual void membersUpdatedImpl();