44 auto o = std::make_shared<data::List>(p);
45 for (
const auto& el : elements)
54 const std::optional<data::VariantPtr>& extends,
58 : std::make_shared<data::Dict>(p);
60 for (
const auto& [key, value] : elements)
62 o->addElement(key, value);
69 const std::string& typeAsString,
70 const unsigned char*
data,
73 auto o = std::make_shared<data::NDArray>(p);
75 o->setType(typeAsString);
79 : std::accumulate(std::begin(shape), std::end(shape), 1, std::multiplies<int>());
80 o->setData(
static_cast<unsigned int>(size),
data);
87 auto o = std::make_shared<data::Int>(p);
95 auto o = std::make_shared<data::Long>(p);
103 auto o = std::make_shared<data::Float>(p);
111 auto o = std::make_shared<data::Double>(p);
119 auto o = std::make_shared<data::String>(p);
127 auto o = std::make_shared<data::Bool>(p);
typename std::add_const< ReturnType >::type ReturnTypeConst
static PointerType DynamicCastAndCheck(const VariantPtr &n)
data::VariantPtr writeFloat(const float i, const Path &p=Path()) override
data::VariantPtr writeDouble(const double i, const Path &p=Path()) override
data::VariantPtr writeBool(const bool i, const Path &p=Path()) override
data::VariantPtr writeList(const std::vector< data::VariantPtr > &elements, const Path &p=Path()) override
data::VariantPtr writeNDArray(const std::vector< int > &shape, const std::string &typeAsString, const unsigned char *data, const Path &p=Path()) override
data::VariantPtr writeString(const std::string &i, const Path &p=Path()) override
data::VariantPtr writeLong(const long i, const Path &p=Path()) override
data::Descriptor getDescriptor(ReturnTypeConst &input) final
data::VariantPtr writeInt(const int i, const Path &p=Path()) override
data::VariantPtr writeDict(const std::map< std::string, data::VariantPtr > &elements, const std::optional< data::VariantPtr > &extends=std::nullopt, const Path &p=Path()) override
A convenience header to include all aron files (full include, not forward declared)
std::shared_ptr< Variant > VariantPtr
static data::Descriptor GetDescriptor(Input &n)