aboutsummaryrefslogtreecommitdiff
path: root/flatcc/test/optional_scalars_test/optional_scalars_test.fbs
blob: ba4c9d4c1a08bb0a8037b2a9549c7425404c5d77 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
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;

}