50 data::dto::GenericDataPtr
53 data::dto::ListPtr o =
new data::dto::List();
54 o->elements = elements;
58 data::dto::GenericDataPtr
60 const std::optional<data::dto::GenericDataPtr>& extends,
66 o->elements.insert(elements.begin(), elements.end());
71 o->elements = elements;
75 data::dto::GenericDataPtr
77 const std::optional<data::dto::GenericDataPtr>& extends,
82 const auto& constElements = elements;
83 return writeDict(constElements, extends, p);
87 o->elements = std::move(elements);
91 data::dto::GenericDataPtr
93 const std::string& typeAsString,
94 const unsigned char*
data,
97 if (typeAsString.empty())
103 data::dto::NDArrayPtr o =
new data::dto::NDArray();
105 o->type = typeAsString;
110 : std::accumulate(std::begin(shape), std::end(shape), 1, std::multiplies<int>());
112 o->data = std::vector<unsigned char>(
static_cast<unsigned int>(size));
115 std::memcpy(o->data.data(),
data,
static_cast<unsigned int>(size));
120 data::dto::GenericDataPtr
123 data::dto::AronIntPtr o =
new data::dto::AronInt();
128 data::dto::GenericDataPtr
131 data::dto::AronLongPtr o =
new data::dto::AronLong();
136 data::dto::GenericDataPtr
139 data::dto::AronFloatPtr o =
new data::dto::AronFloat();
144 data::dto::GenericDataPtr
147 data::dto::AronDoublePtr o =
new data::dto::AronDouble();
152 data::dto::GenericDataPtr
155 data::dto::AronStringPtr o =
new data::dto::AronString();
160 data::dto::GenericDataPtr
163 data::dto::AronBoolPtr o =
new data::dto::AronBool();
171 auto o = data::dto::DictPtr::dynamicCast(
data);
176 "Expected an aron dict but got something else.");
181 data::dto::AronIntPtr
184 auto o = data::dto::AronIntPtr::dynamicCast(
data);
189 "Expected an aron int but got something else.");
typename std::add_const< ReturnType >::type ReturnTypeConst
data::dto::GenericDataPtr writeInt(const int i, const Path &p=Path()) override
data::dto::GenericDataPtr writeString(const std::string &i, const Path &p=Path()) override
data::dto::GenericDataPtr writeDict(const std::map< std::string, data::dto::GenericDataPtr > &elements, const std::optional< data::dto::GenericDataPtr > &extends=std::nullopt, const Path &p=Path()) override
static data::dto::DictPtr DictCastAndCheck(const data::dto::GenericDataPtr &data)
Narrow the generic result of write() to a dict, throwing if it is not one.
data::dto::GenericDataPtr writeBool(const bool i, const Path &p=Path()) override
data::dto::GenericDataPtr writeFloat(const float i, const Path &p=Path()) override
data::dto::GenericDataPtr writeLong(const long i, const Path &p=Path()) override
data::dto::GenericDataPtr writeDouble(const double i, const Path &p=Path()) override
static data::dto::AronIntPtr IntCastAndCheck(const data::dto::GenericDataPtr &data)
As DictCastAndCheck(), for generated int enums.
data::Descriptor getDescriptor(ReturnTypeConst &input) final
data::dto::GenericDataPtr writeNDArray(const std::vector< int > &shape, const std::string &typeAsString, const unsigned char *data, const Path &p=Path()) override
data::dto::GenericDataPtr writeList(const std::vector< data::dto::GenericDataPtr > &elements, const Path &p=Path()) override
A base class for aron exceptions.
::IceInternal::Handle< Dict > DictPtr
A convenience header to include all aron files (full include, not forward declared)
data::Descriptor Aron2Descriptor(const data::dto::GenericData &t)