6 AronDatatypeConverterVisitor::visitAronVariant(
const type::ObjectPtr& el)
10 dict->addElement(TYPE_MEMBER_NAME, type);
12 for (
const auto& [key, child] : el->getMemberTypes())
14 AronDatatypeConverterVisitor converter;
17 dict->addElement(key, converter.latest);
24 AronDatatypeConverterVisitor::visitAronVariant(
const type::DictPtr& el)
28 dict->addElement(TYPE_MEMBER_NAME, type);
30 auto acceptedType = el->getAcceptedType();
31 AronDatatypeConverterVisitor converter;
33 dict->addElement(ACCEPTED_TYPE_MEMBER_NAME, converter.latest);
39 AronDatatypeConverterVisitor::visitAronVariant(
const type::ListPtr& el)
43 dict->addElement(TYPE_MEMBER_NAME, type);
45 auto acceptedType = el->getAcceptedType();
46 AronDatatypeConverterVisitor converter;
48 dict->addElement(ACCEPTED_TYPE_MEMBER_NAME, converter.latest);
54 AronDatatypeConverterVisitor::visitAronVariant(
const type::PairPtr& el)
58 dict->addElement(TYPE_MEMBER_NAME, type);
60 auto acceptedType1 = el->getFirstAcceptedType();
61 AronDatatypeConverterVisitor converter1;
63 dict->addElement(FIRST_ACCEPTED_TYPE_MEMBER_NAME, converter1.latest);
65 auto acceptedType2 = el->getSecondAcceptedType();
66 AronDatatypeConverterVisitor converter2;
68 dict->addElement(SECOND_ACCEPTED_TYPE_MEMBER_NAME, converter2.latest);
74 AronDatatypeConverterVisitor::visitAronVariant(
const type::TuplePtr& el)
78 dict->addElement(TYPE_MEMBER_NAME, type);
81 for (
const auto& child : el->getAcceptedTypes())
83 AronDatatypeConverterVisitor converter;
86 dict->addElement(std::string(ACCEPTED_TYPE_MEMBER_NAME) +
"_" + std::to_string(i++),
94 AronDatatypeConverterVisitor::visitAronVariant(
const type::MatrixPtr& el)
118 AronDatatypeConverterVisitor::visitAronVariant(
const type::ImagePtr& el)
130 AronDatatypeConverterVisitor::visitAronVariant(
const type::IntPtr& el)
136 AronDatatypeConverterVisitor::visitAronVariant(
const type::LongPtr& el)
142 AronDatatypeConverterVisitor::visitAronVariant(
const type::FloatPtr& el)
148 AronDatatypeConverterVisitor::visitAronVariant(
const type::DoublePtr& el)
154 AronDatatypeConverterVisitor::visitAronVariant(
const type::BoolPtr& el)
160 AronDatatypeConverterVisitor::visitAronVariant(
const type::StringPtr& el)
aron::data::VariantPtr latest
void visit(VisitorImplementation &v, typename VisitorImplementation::Input &t)
The visit function.
std::shared_ptr< class Quaternion > QuaternionPtr
std::shared_ptr< class AnyObject > AnyObjectPtr
std::shared_ptr< Object > ObjectPtr
std::shared_ptr< class Double > DoublePtr
std::shared_ptr< class Matrix > MatrixPtr
std::shared_ptr< class Image > ImagePtr
std::shared_ptr< class Long > LongPtr
std::shared_ptr< class String > StringPtr
std::shared_ptr< class PointCloud > PointCloudPtr
std::shared_ptr< class Pair > PairPtr
std::shared_ptr< class NDArray > NDArrayPtr
std::shared_ptr< class Int > IntPtr
std::shared_ptr< class Float > FloatPtr
std::shared_ptr< class Bool > BoolPtr
std::shared_ptr< class Tuple > TuplePtr
std::shared_ptr< class Dict > DictPtr
std::shared_ptr< IntEnum > IntEnumPtr
std::shared_ptr< class List > ListPtr
aron::data::StringPtr make_string(_Args &&... args)
aron::data::DictPtr make_dict(_Args &&... args)