| // Copyright 2015 The Vanadium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| package types |
| |
| type ( |
| // vomdata config types |
| ConvertGroup struct{ Name string; PrimaryType typeobject; Values []any } |
| VomdataStruct struct{ |
| EncodeDecodeData map[byte][]any // map from min required VOM version to test values |
| CompatData map[string][]typeobject |
| ConvertData map[string][]ConvertGroup |
| } |
| |
| // Named Types |
| NBool bool |
| NString string |
| NByteSlice []byte |
| NByteArray [4]byte |
| NByte byte |
| NUint16 uint16 |
| NUint32 uint32 |
| NUint64 uint64 |
| NInt8 int8 |
| NInt16 int16 |
| NInt32 int32 |
| NInt64 int64 |
| NFloat32 float32 |
| NFloat64 float64 |
| NComplex64 complex64 |
| NComplex128 complex128 |
| |
| NArray2Uint64 [2]uint64 |
| NListUint64 []uint64 |
| NSetUint64 set[uint64] |
| NMapUint64String map[uint64]string |
| |
| NStruct struct { |
| A bool |
| B string |
| C int64 |
| } |
| |
| NEnum enum{ A; B; C } |
| NUnion union{ A bool; B string; C int64 } |
| |
| // Nested Custom Types |
| MBool NBool |
| MStruct struct { |
| A bool |
| B NBool |
| C MBool |
| D ?NStruct |
| E typeobject |
| F any |
| } |
| MList []NListUint64 |
| MMap map[NFloat32]NListUint64 |
| MByteSlice []byte |
| MInt8Slice []int8 |
| |
| // Recursive Type Definitions |
| RecA []RecA |
| RecX []RecY |
| RecY []RecX |
| Rec1 []Rec2 |
| Rec2 []Rec3 |
| Rec3 []Rec4 |
| Rec4 []Rec1 |
| RecStruct struct { |
| A ?RecStruct |
| } |
| Rec1234 struct { |
| R1 Rec1 |
| R2 Rec2 |
| R3 Rec3 |
| R4 Rec4 |
| } |
| Rec1234A struct { |
| A []Rec1234A |
| Rec1234 []Rec1234 |
| } |
| Rec1234B struct { |
| B []Rec1234B |
| Rec1234 []Rec1234 |
| } |
| Rec1234All struct { |
| A Rec1234A |
| B Rec1234B |
| } |
| |
| // Additional types for compatibility and conversion checks |
| ListString []string |
| Array3String [3]string |
| Array4String [4]string |
| |
| AbcStruct struct { |
| A bool |
| B string |
| C int64 |
| } |
| AdeStruct struct { |
| A bool |
| D any |
| E typeobject |
| } |
| |
| XyzStruct struct { |
| X bool |
| Y MBool |
| Z string |
| } |
| YzStruct struct { |
| Y NBool |
| Z NString |
| } |
| ZStruct struct { |
| Z string |
| } |
| |
| MapOnlyStruct struct { |
| Key1 int64 |
| Key2 uint32 |
| Key3 complex128 |
| } |
| StructOnlyMap map[string]uint64 |
| |
| MapSetStruct struct { |
| Feat bool |
| Tire bool |
| Eel bool |
| } |
| SetStructMap map[string]bool |
| MapStructSet set[string] |
| |
| SetOnlyMap map[float64]bool |
| SometimesSetMap map[float64]any |
| MapOnlySet set[float64] |
| |
| SetOnlyA set[bool] |
| SetOnlyA2 set[NBool] |
| SetOnlyB set[int16] |
| SetOnlyB2 set[NInt16] |
| |
| MapOnlyA map[uint32]uint32 |
| MapOnlyA2 map[int64]float64 |
| MapOnlyB map[bool]string |
| MapOnlyB2 map[NBool]NString |
| |
| BdeUnion union{ B string; D any; E typeobject } |
| |
| BrieEnum enum{ Glee; Brie; Three } |
| BeanEnum enum{ Bean } |
| FoodEnum enum{ Bean; Brie; Cherry } |
| |
| StructAny struct { |
| Any any |
| } |
| |
| StructMap struct { |
| Map map[int64]int64 |
| } |
| |
| // Since the encoding changes if struct fields are zero values, |
| // test each of the kinds in a struct both as zero and non-zero values. |
| StructManyTypes struct { |
| Bool bool |
| AByte byte |
| Int16 int16 |
| Int32 int32 |
| Int64 int64 |
| Uint16 uint16 |
| Uint32 uint32 |
| Uint64 uint64 |
| String string |
| Bytes []byte |
| Float32 float32 |
| Float64 float64 |
| Complex64 complex64 |
| Complex128 complex128 |
| FoodEnum FoodEnum |
| NEnum NEnum |
| NListUint64 NListUint64 |
| NByteArray NByteArray |
| NArray2Uint64 NArray2Uint64 |
| NSetUint64 NSetUint64 |
| NMapUint64String NMapUint64String |
| NStruct NStruct |
| NUnion NUnion |
| TypeObject typeobject |
| } |
| |
| AnySlice []any |
| |
| LargeMessageType struct { |
| Payload []byte |
| Next ?LargeMessageType |
| } |
| |
| LargeAnyMessageType struct { |
| Payload any |
| Next ?LargeAnyMessageType |
| } |
| ) |