1/** 2 * Copyright (c) 2022 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16syntax = "proto3"; 17package protoPanda; 18 19import "assemblyType.proto"; 20 21message Value { 22 uint32 type = 1; 23} 24 25message ScalarValue { 26 enum VariantValueType { 27 UINT64 = 0; 28 FLOAT = 1; 29 DOUBLE = 2; 30 STRING = 3; 31 PANDASM_TYPE = 4; 32 ANNOTATION_DATA = 5; 33 } 34 Value father = 1; 35 oneof value { 36 uint64 valueU64 = 2; 37 float valueFloat = 3; 38 double valueDouble = 4; 39 bytes valueStr = 5; 40 Type valueType = 6; 41 AnnotationData valueAnno = 7; 42 } 43 VariantValueType type = 8; 44} 45 46message ArrayValue { 47 Value father = 1; 48 uint32 componentType = 2; 49 repeated ScalarValue values = 3; 50} 51 52message AnnotationElement { 53 enum ValueType { 54 SCALAR = 0; 55 ARRAY = 1; 56 } 57 bytes name = 1; 58 oneof value { 59 ScalarValue scalar = 2; 60 ArrayValue array = 3; 61 } 62 ValueType valueType = 4; 63} 64 65message AnnotationData { 66 bytes recordName = 1; 67 repeated AnnotationElement elements = 2; 68} 69