namespace keyfield.sample;

struct Baz {
  a: [uint8:4] (key); // A fixed-sized array of uint8 as a Key
  b: uint8 ;
}

struct Bar {
  a: [float:3] (key); // A fixed-sized array of float as a Key
  b: uint8;
}

struct Color {
  rgb: [float:3] (key);
  tag: uint8;
}

struct Apple {
  tag: uint8;
  color: Color(key);
}

struct Fruit {
  a: Apple (key);
  b: uint8;
}

struct Rice {
  origin: [uint8:3];
  quantity: uint32;
}

struct Grain {
  a: [Rice:3] (key);
  tag: uint8;
}

table FooTable {
  a: int;
  b: int;
  c: string (key);
  d: [Baz];
  e: [Bar];
  f: [Apple];
  g: [Fruit];
  h: [Grain];
}
root_type FooTable;

