43 using Ptr = std::unique_ptr<ToolsField>;
44 using SerialisedSeq = std::vector<std::uint8_t>;
45 using Members = std::vector<Ptr>;
53 const char* name()
const;
55 std::size_t length()
const;
61 SerialisedSeq getSerialisedValue()
const;
63 bool setSerialisedValue(
const SerialisedSeq& value);
65 QString getSerialisedString()
const;
67 bool setSerialisedString(
const QString& str);
69 void dispatch(ToolsFieldHandler& handler);
73 bool canWrite()
const;
77 Members& getMembers();
78 const Members& getMembers()
const;
79 void setMembers(Members&& members);
82 bool isReadOnly()
const;
84 void forceHiddenSerialization();
85 bool isHiddenSerialization()
const;
88 virtual const char* nameImpl()
const = 0;
89 virtual std::size_t lengthImpl()
const = 0;
90 virtual bool validImpl()
const = 0;
91 virtual bool isReadOnlyImpl()
const = 0;
92 virtual bool isHiddenSerializationImpl()
const = 0;
93 virtual SerialisedSeq getSerialisedValueImpl()
const = 0;
94 virtual bool setSerialisedValueImpl(
const SerialisedSeq& value) = 0;
95 virtual void dispatchImpl(ToolsFieldHandler& handler) = 0;
96 virtual Ptr cloneImpl() = 0;
97 virtual bool canWriteImpl()
const = 0;
98 virtual void resetImpl() = 0;
99 virtual void membersUpdatedImpl();