- struct CompoundTypeDef
- {
- virtual ~CompoundTypeDef() = default;
-
- virtual std::string describe() const = 0;
- virtual char *serialize(const C &, char *, char *) const = 0;
- virtual const char *deserialize(C &, const char *, const char *) const = 0;
- };
-
- template<typename C, typename S>
- struct CompoundDef: public CompoundTypeDef<C>
- {
- S serializer;
-
- CompoundDef(const S &);
-
- std::string describe() const override;
- char *serialize(const C &, char *, char *) const override;
- const char *deserialize(C &, const char *, const char *) const override;
- };