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});
92 std::vector<ReaderInputTypeNonConst> elementsOfInput;
93 std::vector<WriterReturnType> elementsReturn;
95 r.readList(o, elementsOfInput, p);
96 for (
const auto& value : elementsOfInput)
99 elementsReturn.push_back(converted);
109 std::vector<int> shape;
110 std::vector<unsigned char>
data;
142 r.readFloat(o, i, p);
152 r.readDouble(o, i, p);
172 r.readString(o, i, p);
183 "A visitor got data but the enum is unknown.");
191 template <
class ConverterImplementation>
192 requires isConverter<ConverterImplementation>
193 typename ConverterImplementation::WriterReturnType
196 ConverterImplementation v;
198 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