diff options
Diffstat (limited to 'test/optional_scalars_test/optional_scalars_test.fbs')
1 files changed, 71 insertions, 0 deletions
diff --git a/test/optional_scalars_test/optional_scalars_test.fbs b/test/optional_scalars_test/optional_scalars_test.fbs new file mode 100644 index 0000000..ba4c9d4 --- /dev/null +++ b/test/optional_scalars_test/optional_scalars_test.fbs @@ -0,0 +1,71 @@ +namespace optional_scalars; + +enum OptionalByte: byte { + None = 0, + One = 1, +} + +// Enums without a 0 element normally requires an initializer +// which is a problem when = null is the default. In this case +// the default value is forced to 0 when a reader insists on +// getting a numerical value instead of null. +enum OptionalFactor: byte { + Once = 1, + Twice = 2, +} + +// This table tests optional scalars in tables. It should be integrated with +// the main monster test once most languages support optional scalars. +table ScalarStuff { + just_i8: int8; + maybe_i8: int8 = null; + default_i8: int8 = 42; + just_u8: uint8; + maybe_u8: uint8 = null; + default_u8: uint8 = 42; + + just_i16: int16; + maybe_i16: int16 = null; + default_i16: int16 = 42; + just_u16: uint16; + maybe_u16: uint16 = null; + default_u16: uint16 = 42; + + just_i32: int32; + maybe_i32: int32 = null; + default_i32: int32 = 42; + just_u32: uint32; + maybe_u32: uint32 = null; + default_u32: uint32 = 42; + + just_i64: int64; + maybe_i64: int64 = null; + default_i64: int64 = 42; + just_u64: uint64; + maybe_u64: uint64 = null; + default_u64: uint64 = 42; + + just_f32: float32; + maybe_f32: float32 = null; + default_f32: float32 = 42; + just_f64: float64; + maybe_f64: float64 = null; + default_f64: float64 = 42; + + just_bool: bool; + maybe_bool: bool = null; + default_bool: bool = true; + + just_enum: OptionalByte; + maybe_enum: OptionalByte = null; + default_enum: OptionalByte = One; + + just_xfactor: OptionalFactor = Once; + maybe_xfactor: OptionalFactor = null; + default_xfactor: OptionalFactor = Twice; + + just_yfactor: OptionalFactor = Once; + maybe_yfactor: OptionalFactor = null; + default_yfactor: OptionalFactor = Twice; + +} |