Lines Matching refs:pandasm
19 void AnnotationData::Serialize(const panda::pandasm::AnnotationData &anno, protoPanda::AnnotationData &protoAnno)
28 void AnnotationData::Deserialize(const protoPanda::AnnotationData &protoAnno, panda::pandasm::AnnotationData &anno,
32 panda::pandasm::AnnotationElement &element = AnnotationElement::Deserialize(protoElement, allocator);
37 void AnnotationElement::Serialize(const panda::pandasm::AnnotationElement &element,
52 panda::pandasm::AnnotationElement &AnnotationElement::Deserialize(const protoPanda::AnnotationElement &protoElement,
56 panda::pandasm::ArrayValue &array = ArrayValue::Deserialize(protoElement.array(), allocator);
57 auto *element = allocator->New<panda::pandasm::AnnotationElement>(protoElement.name(),
58 std::make_unique<panda::pandasm::ArrayValue>(array));
62 panda::pandasm::ScalarValue scalar = ScalarValue::Deserialize(protoElement.scalar(), allocator);
63 auto *element = allocator->New<panda::pandasm::AnnotationElement>(protoElement.name(),
64 std::make_unique<panda::pandasm::ScalarValue>(scalar));
69 void ScalarValue::Serialize(const panda::pandasm::ScalarValue &scalar, protoPanda::ScalarValue &protoScalar)
75 case panda::pandasm::Value::Type::U1:
76 case panda::pandasm::Value::Type::U8:
79 case panda::pandasm::Value::Type::U16:
82 case panda::pandasm::Value::Type::STRING_NULLPTR:
83 case panda::pandasm::Value::Type::U32:
86 case panda::pandasm::Value::Type::U64:
89 case panda::pandasm::Value::Type::I8:
92 case panda::pandasm::Value::Type::I16:
95 case panda::pandasm::Value::Type::I32:
98 case panda::pandasm::Value::Type::I64:
101 case panda::pandasm::Value::Type::F32:
105 case panda::pandasm::Value::Type::F64:
109 case panda::pandasm::Value::Type::STRING:
110 case panda::pandasm::Value::Type::METHOD:
111 case panda::pandasm::Value::Type::ENUM:
112 case panda::pandasm::Value::Type::LITERALARRAY:
116 case panda::pandasm::Value::Type::RECORD: {
119 Type::Serialize(scalar.GetValue<panda::pandasm::Type>(), *protoType);
122 case panda::pandasm::Value::Type::ANNOTATION: {
125 AnnotationData::Serialize(scalar.GetValue<panda::pandasm::AnnotationData>(), *protoAnno);
129 std::cerr << "unknown panda::pandasm::Value::Type" << std::endl;
135 panda::pandasm::ScalarValue ScalarValue::Deserialize(const protoPanda::ScalarValue &protoScalar,
139 std::variant<uint64_t, float, double, std::string, panda::pandasm::Type, panda::pandasm::AnnotationData> value;
158 value = static_cast<panda::pandasm::Type>(Type::Deserialize(protoScalar.valuetype(), allocator));
163 auto *value = allocator->New<panda::pandasm::AnnotationData>(protoAnnotationData.recordname());
171 auto scalar = ScalarValue::CreateScalarValue(static_cast<panda::pandasm::Value::Type>(
176 panda::pandasm::ScalarValue ScalarValue::CreateScalarValue(const panda::pandasm::Value::Type &type,
177 std::variant<uint64_t, float, double, std::string, panda::pandasm::Type, panda::pandasm::AnnotationData> &value)
180 case panda::pandasm::Value::Type::U1: {
181 return panda::pandasm::ScalarValue::Create<panda::pandasm::Value::Type::U1>(static_cast<uint8_t>(
184 case panda::pandasm::Value::Type::U8: {
185 return panda::pandasm::ScalarValue::Create<panda::pandasm::Value::Type::U8>(static_cast<uint8_t>(
188 case panda::pandasm::Value::Type::U16: {
189 return panda::pandasm::ScalarValue::Create<panda::pandasm::Value::Type::U16>(static_cast<uint16_t>(
192 case panda::pandasm::Value::Type::STRING_NULLPTR: {
193 return panda::pandasm::ScalarValue::Create<panda::pandasm::Value::Type::STRING_NULLPTR>(
196 case panda::pandasm::Value::Type::U32: {
197 return panda::pandasm::ScalarValue::Create<panda::pandasm::Value::Type::U32>(static_cast<uint32_t>(
200 case panda::pandasm::Value::Type::U64: {
201 return panda::pandasm::ScalarValue::Create<panda::pandasm::Value::Type::U64>(static_cast<uint64_t>(
204 case panda::pandasm::Value::Type::I8: {
205 return panda::pandasm::ScalarValue::Create<panda::pandasm::Value::Type::I8>(static_cast<int8_t>(
208 case panda::pandasm::Value::Type::I16: {
209 return panda::pandasm::ScalarValue::Create<panda::pandasm::Value::Type::I16>(static_cast<int16_t>(
212 case panda::pandasm::Value::Type::I32: {
213 return panda::pandasm::ScalarValue::Create<panda::pandasm::Value::Type::I32>(static_cast<int32_t>(
216 case panda::pandasm::Value::Type::I64: {
217 return panda::pandasm::ScalarValue::Create<panda::pandasm::Value::Type::I64>(static_cast<int64_t>(
220 case panda::pandasm::Value::Type::F32: {
221 return panda::pandasm::ScalarValue::Create<panda::pandasm::Value::Type::F32>(std::get<float>(value));
223 case panda::pandasm::Value::Type::F64: {
224 return panda::pandasm::ScalarValue::Create<panda::pandasm::Value::Type::F64>(std::get<double>(value));
226 case panda::pandasm::Value::Type::STRING: {
227 return panda::pandasm::ScalarValue::Create<panda::pandasm::Value::Type::STRING>(
230 case panda::pandasm::Value::Type::METHOD: {
231 return panda::pandasm::ScalarValue::Create<panda::pandasm::Value::Type::METHOD>(
234 case panda::pandasm::Value::Type::ENUM: {
235 return panda::pandasm::ScalarValue::Create<panda::pandasm::Value::Type::ENUM>(std::get<std::string>(value));
237 case panda::pandasm::Value::Type::RECORD: {
238 return panda::pandasm::ScalarValue::Create<panda::pandasm::Value::Type::RECORD>(
239 std::get<panda::pandasm::Type>(value));
241 case panda::pandasm::Value::Type::ANNOTATION: {
242 return panda::pandasm::ScalarValue::Create<panda::pandasm::Value::Type::ANNOTATION>(
243 std::get<panda::pandasm::AnnotationData>(value));
245 case panda::pandasm::Value::Type::LITERALARRAY: {
246 return panda::pandasm::ScalarValue::Create<panda::pandasm::Value::Type::LITERALARRAY>(
254 void ArrayValue::Serialize(const panda::pandasm::ArrayValue &array, protoPanda::ArrayValue &protoArray)
264 panda::pandasm::ArrayValue &ArrayValue::Deserialize(const protoPanda::ArrayValue &protoArray,
267 std::vector<panda::pandasm::ScalarValue> values;
270 panda::pandasm::ScalarValue scalar = ScalarValue::Deserialize(protoValue, allocator);
273 auto *array = allocator->New<panda::pandasm::ArrayValue>(
274 static_cast<panda::pandasm::Value::Type>(protoArray.componenttype()), values);