blob: 9d04c53c24599e1fd9c7f50c8716eace1c86379c [file]
# Copyright 2019 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-- Structures used specifically to test text format input and output.
[$default byte_order: "LittleEndian"]
[(cpp) namespace: "emboss::test"]
struct Vanilla:
0 [+1] UInt a
1 [+1] UInt b
struct StructWithSkippedFields:
0 [+1] UInt a
1 [+1] UInt b
[text_output: "Skip"]
2 [+1] UInt c
struct StructWithSkippedStructureFields:
0 [+2] Vanilla a
2 [+2] Vanilla b
[text_output: "Skip"]
4 [+2] Vanilla c
enum JsonTestEnum:
ZERO = 0
ONE = 1
TWO = 2
THREE = 3
FOUR = 4
struct JsonTestArrayStruct:
0 [+1] UInt element_one
1 [+1] UInt element_two
2 [+1] UInt element_three
3 [+1] UInt element_four
struct JsonTestStruct:
0 [+1] JsonTestEnum one_byte_enum
1 [+1] bits:
0 [+7] UInt seven_bit_uint
7 [+1] Flag one_bit_flag
2 [+1] UInt one_byte_uint
3 [+2] UInt two_byte_uint
5 [+4] UInt four_byte_uint
9 [+8] UInt eight_byte_uint
17 [+10] UInt:8[] uint8_array
27 [+20] UInt:16[] uint16_array
47 [+8] JsonTestArrayStruct[] struct_array
enum JsonNarrowEnum:
[maximum_bits: 16]
NARROW_ONE = 1
# Enum fields whose underlying types straddle the 32-bit quoting threshold, used
# to exercise JSON serialization of unnamed enum values: wide_enum's type is
# 64-bit so its unnamed value is quoted as a string (it can exceed what an
# IEEE-754-backed JSON parser preserves), while narrow_enum's type is 16-bit so
# its unnamed value is left as a bare number.
struct JsonEnumStruct:
0 [+8] JsonTestEnum wide_enum
8 [+2] JsonNarrowEnum narrow_enum
# Float and double fields, used to exercise JSON serialization of the special
# values NaN, Infinity, and -Infinity as quoted strings.
struct JsonFloatStruct:
0 [+4] Float f
4 [+8] Float d