33 template <
class ReaderImplementation,
class WriterImplementation,
class DerivedT>
39 std::is_base_of<Converter<typename T::ReaderType, typename T::WriterType, typename T::This>,
42 template <
class ConverterImplementation>
44 typename ConverterImplementation::WriterReturnType
45 readAndWrite(
typename ConverterImplementation::ReaderInputType& o);
49 template <
class ReaderImplementation,
class WriterImplementation,
class DerivedT>
60 ReaderImplementation
r;
61 WriterImplementation
w;
69 return r.getDescriptor(o);
75 std::map<std::string, ReaderInputTypeNonConst> elementsOfInput;
76 std::map<std::string, WriterReturnType> elementsReturn;
78 r.readDict(o, elementsOfInput, p);
79 for (
const auto& [key, value] : elementsOfInput)
82 elementsReturn.insert({key, converted});
91 std::vector<ReaderInputTypeNonConst> elementsOfInput;
92 std::vector<WriterReturnType> elementsReturn;
94 r.readList(o, elementsOfInput, p);
95 for (
const auto& value : elementsOfInput)
98 elementsReturn.push_back(converted);
107 std::vector<int> shape;
108 std::vector<unsigned char>
data;
137 r.readFloat(o, i, p);
146 r.readDouble(o, i, p);
164 r.readString(o, i, p);
174 "A visitor got data but the enum is unknown.");
182 template <
class ConverterImplementation>
183 requires isConverter<ConverterImplementation>
184 typename ConverterImplementation::WriterReturnType
187 ConverterImplementation v;
189 return v.last_returned;
A base class for aron exceptions.
A convenience header to include all aron files (full include, not forward declared)
ConverterImplementation::WriterReturnType readAndWrite(typename ConverterImplementation::ReaderInputType &o)
the function to read from a variant and write to a writer T returns the returntype of T
void visit(VisitorImplementation &v, typename VisitorImplementation::Input &o)
A convenience header to include all aron files (full include, not forward declared)
Converter struct providing the needed methods.
WriterImplementation WriterType
typename ReaderImplementation::InputTypeNonConst ReaderInputTypeNonConst
typename WriterImplementation::ReturnType WriterReturnType
void visitDouble(ReaderInputType &o) final
void visitFloat(ReaderInputType &o) final
ReaderImplementation ReaderType
void visitNDArray(ReaderInputType &o) final
WriterReturnType last_returned
void visitBool(ReaderInputType &o) final
data::Descriptor getDescriptor(ReaderInputType &o) final
void visitLong(ReaderInputType &o) final
void visitString(ReaderInputType &o) final
void visitUnknown(ReaderInputType &o) final
void visitInt(ReaderInputType &o) final
typename ReaderImplementation::InputType ReaderInputType
virtual ~Converter()=default
void visitList(ReaderInputType &o) final
void visitDict(ReaderInputType &o) final