• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // automatically generated by the FlatBuffers compiler, do not modify
2 // @generated
3 extern crate alloc;
4 extern crate flatbuffers;
5 use alloc::boxed::Box;
6 use alloc::string::{String, ToString};
7 use alloc::vec::Vec;
8 use core::mem;
9 use core::cmp::Ordering;
10 extern crate serde;
11 use self::serde::ser::{Serialize, Serializer, SerializeStruct};
12 use self::flatbuffers::{EndianScalar, Follow};
13 use super::*;
14 pub enum MonsterOffset {}
15 #[derive(Copy, Clone, PartialEq)]
16 
17 /// an example documentation comment: "monster object"
18 pub struct Monster<'a> {
19   pub _tab: flatbuffers::Table<'a>,
20 }
21 
22 impl<'a> flatbuffers::Follow<'a> for Monster<'a> {
23   type Inner = Monster<'a>;
24   #[inline]
follow(buf: &'a [u8], loc: usize) -> Self::Inner25   fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
26     Self { _tab: flatbuffers::Table { buf, loc } }
27   }
28 }
29 
30 impl<'a> Monster<'a> {
31   pub const VT_POS: flatbuffers::VOffsetT = 4;
32   pub const VT_MANA: flatbuffers::VOffsetT = 6;
33   pub const VT_HP: flatbuffers::VOffsetT = 8;
34   pub const VT_NAME: flatbuffers::VOffsetT = 10;
35   pub const VT_INVENTORY: flatbuffers::VOffsetT = 14;
36   pub const VT_COLOR: flatbuffers::VOffsetT = 16;
37   pub const VT_TEST_TYPE: flatbuffers::VOffsetT = 18;
38   pub const VT_TEST: flatbuffers::VOffsetT = 20;
39   pub const VT_TEST4: flatbuffers::VOffsetT = 22;
40   pub const VT_TESTARRAYOFSTRING: flatbuffers::VOffsetT = 24;
41   pub const VT_TESTARRAYOFTABLES: flatbuffers::VOffsetT = 26;
42   pub const VT_ENEMY: flatbuffers::VOffsetT = 28;
43   pub const VT_TESTNESTEDFLATBUFFER: flatbuffers::VOffsetT = 30;
44   pub const VT_TESTEMPTY: flatbuffers::VOffsetT = 32;
45   pub const VT_TESTBOOL: flatbuffers::VOffsetT = 34;
46   pub const VT_TESTHASHS32_FNV1: flatbuffers::VOffsetT = 36;
47   pub const VT_TESTHASHU32_FNV1: flatbuffers::VOffsetT = 38;
48   pub const VT_TESTHASHS64_FNV1: flatbuffers::VOffsetT = 40;
49   pub const VT_TESTHASHU64_FNV1: flatbuffers::VOffsetT = 42;
50   pub const VT_TESTHASHS32_FNV1A: flatbuffers::VOffsetT = 44;
51   pub const VT_TESTHASHU32_FNV1A: flatbuffers::VOffsetT = 46;
52   pub const VT_TESTHASHS64_FNV1A: flatbuffers::VOffsetT = 48;
53   pub const VT_TESTHASHU64_FNV1A: flatbuffers::VOffsetT = 50;
54   pub const VT_TESTARRAYOFBOOLS: flatbuffers::VOffsetT = 52;
55   pub const VT_TESTF: flatbuffers::VOffsetT = 54;
56   pub const VT_TESTF2: flatbuffers::VOffsetT = 56;
57   pub const VT_TESTF3: flatbuffers::VOffsetT = 58;
58   pub const VT_TESTARRAYOFSTRING2: flatbuffers::VOffsetT = 60;
59   pub const VT_TESTARRAYOFSORTEDSTRUCT: flatbuffers::VOffsetT = 62;
60   pub const VT_FLEX: flatbuffers::VOffsetT = 64;
61   pub const VT_TEST5: flatbuffers::VOffsetT = 66;
62   pub const VT_VECTOR_OF_LONGS: flatbuffers::VOffsetT = 68;
63   pub const VT_VECTOR_OF_DOUBLES: flatbuffers::VOffsetT = 70;
64   pub const VT_PARENT_NAMESPACE_TEST: flatbuffers::VOffsetT = 72;
65   pub const VT_VECTOR_OF_REFERRABLES: flatbuffers::VOffsetT = 74;
66   pub const VT_SINGLE_WEAK_REFERENCE: flatbuffers::VOffsetT = 76;
67   pub const VT_VECTOR_OF_WEAK_REFERENCES: flatbuffers::VOffsetT = 78;
68   pub const VT_VECTOR_OF_STRONG_REFERRABLES: flatbuffers::VOffsetT = 80;
69   pub const VT_CO_OWNING_REFERENCE: flatbuffers::VOffsetT = 82;
70   pub const VT_VECTOR_OF_CO_OWNING_REFERENCES: flatbuffers::VOffsetT = 84;
71   pub const VT_NON_OWNING_REFERENCE: flatbuffers::VOffsetT = 86;
72   pub const VT_VECTOR_OF_NON_OWNING_REFERENCES: flatbuffers::VOffsetT = 88;
73   pub const VT_ANY_UNIQUE_TYPE: flatbuffers::VOffsetT = 90;
74   pub const VT_ANY_UNIQUE: flatbuffers::VOffsetT = 92;
75   pub const VT_ANY_AMBIGUOUS_TYPE: flatbuffers::VOffsetT = 94;
76   pub const VT_ANY_AMBIGUOUS: flatbuffers::VOffsetT = 96;
77   pub const VT_VECTOR_OF_ENUMS: flatbuffers::VOffsetT = 98;
78   pub const VT_SIGNED_ENUM: flatbuffers::VOffsetT = 100;
79   pub const VT_TESTREQUIREDNESTEDFLATBUFFER: flatbuffers::VOffsetT = 102;
80   pub const VT_SCALAR_KEY_SORTED_TABLES: flatbuffers::VOffsetT = 104;
81   pub const VT_NATIVE_INLINE: flatbuffers::VOffsetT = 106;
82   pub const VT_LONG_ENUM_NON_ENUM_DEFAULT: flatbuffers::VOffsetT = 108;
83   pub const VT_LONG_ENUM_NORMAL_DEFAULT: flatbuffers::VOffsetT = 110;
84 
get_fully_qualified_name() -> &'static str85   pub const fn get_fully_qualified_name() -> &'static str {
86     "MyGame.Example.Monster"
87   }
88 
89   #[inline]
init_from_table(table: flatbuffers::Table<'a>) -> Self90   pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
91     Monster { _tab: table }
92   }
93   #[allow(unused_mut)]
create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, args: &'args MonsterArgs<'args> ) -> flatbuffers::WIPOffset<Monster<'bldr>>94   pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>(
95     _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>,
96     args: &'args MonsterArgs<'args>
97   ) -> flatbuffers::WIPOffset<Monster<'bldr>> {
98     let mut builder = MonsterBuilder::new(_fbb);
99     builder.add_long_enum_normal_default(args.long_enum_normal_default);
100     builder.add_long_enum_non_enum_default(args.long_enum_non_enum_default);
101     builder.add_non_owning_reference(args.non_owning_reference);
102     builder.add_co_owning_reference(args.co_owning_reference);
103     builder.add_single_weak_reference(args.single_weak_reference);
104     builder.add_testhashu64_fnv1a(args.testhashu64_fnv1a);
105     builder.add_testhashs64_fnv1a(args.testhashs64_fnv1a);
106     builder.add_testhashu64_fnv1(args.testhashu64_fnv1);
107     builder.add_testhashs64_fnv1(args.testhashs64_fnv1);
108     if let Some(x) = args.native_inline { builder.add_native_inline(x); }
109     if let Some(x) = args.scalar_key_sorted_tables { builder.add_scalar_key_sorted_tables(x); }
110     if let Some(x) = args.testrequirednestedflatbuffer { builder.add_testrequirednestedflatbuffer(x); }
111     if let Some(x) = args.vector_of_enums { builder.add_vector_of_enums(x); }
112     if let Some(x) = args.any_ambiguous { builder.add_any_ambiguous(x); }
113     if let Some(x) = args.any_unique { builder.add_any_unique(x); }
114     if let Some(x) = args.vector_of_non_owning_references { builder.add_vector_of_non_owning_references(x); }
115     if let Some(x) = args.vector_of_co_owning_references { builder.add_vector_of_co_owning_references(x); }
116     if let Some(x) = args.vector_of_strong_referrables { builder.add_vector_of_strong_referrables(x); }
117     if let Some(x) = args.vector_of_weak_references { builder.add_vector_of_weak_references(x); }
118     if let Some(x) = args.vector_of_referrables { builder.add_vector_of_referrables(x); }
119     if let Some(x) = args.parent_namespace_test { builder.add_parent_namespace_test(x); }
120     if let Some(x) = args.vector_of_doubles { builder.add_vector_of_doubles(x); }
121     if let Some(x) = args.vector_of_longs { builder.add_vector_of_longs(x); }
122     if let Some(x) = args.test5 { builder.add_test5(x); }
123     if let Some(x) = args.flex { builder.add_flex(x); }
124     if let Some(x) = args.testarrayofsortedstruct { builder.add_testarrayofsortedstruct(x); }
125     if let Some(x) = args.testarrayofstring2 { builder.add_testarrayofstring2(x); }
126     builder.add_testf3(args.testf3);
127     builder.add_testf2(args.testf2);
128     builder.add_testf(args.testf);
129     if let Some(x) = args.testarrayofbools { builder.add_testarrayofbools(x); }
130     builder.add_testhashu32_fnv1a(args.testhashu32_fnv1a);
131     builder.add_testhashs32_fnv1a(args.testhashs32_fnv1a);
132     builder.add_testhashu32_fnv1(args.testhashu32_fnv1);
133     builder.add_testhashs32_fnv1(args.testhashs32_fnv1);
134     if let Some(x) = args.testempty { builder.add_testempty(x); }
135     if let Some(x) = args.testnestedflatbuffer { builder.add_testnestedflatbuffer(x); }
136     if let Some(x) = args.enemy { builder.add_enemy(x); }
137     if let Some(x) = args.testarrayoftables { builder.add_testarrayoftables(x); }
138     if let Some(x) = args.testarrayofstring { builder.add_testarrayofstring(x); }
139     if let Some(x) = args.test4 { builder.add_test4(x); }
140     if let Some(x) = args.test { builder.add_test(x); }
141     if let Some(x) = args.inventory { builder.add_inventory(x); }
142     if let Some(x) = args.name { builder.add_name(x); }
143     if let Some(x) = args.pos { builder.add_pos(x); }
144     builder.add_hp(args.hp);
145     builder.add_mana(args.mana);
146     builder.add_signed_enum(args.signed_enum);
147     builder.add_any_ambiguous_type(args.any_ambiguous_type);
148     builder.add_any_unique_type(args.any_unique_type);
149     builder.add_testbool(args.testbool);
150     builder.add_test_type(args.test_type);
151     builder.add_color(args.color);
152     builder.finish()
153   }
154 
unpack(&self) -> MonsterT155   pub fn unpack(&self) -> MonsterT {
156     let pos = self.pos().map(|x| {
157       x.unpack()
158     });
159     let mana = self.mana();
160     let hp = self.hp();
161     let name = {
162       let x = self.name();
163       x.to_string()
164     };
165     let inventory = self.inventory().map(|x| {
166       x.to_vec()
167     });
168     let color = self.color();
169     let test = match self.test_type() {
170       Any::NONE => AnyT::NONE,
171       Any::Monster => AnyT::Monster(Box::new(
172         self.test_as_monster()
173             .expect("Invalid union table, expected `Any::Monster`.")
174             .unpack()
175       )),
176       Any::TestSimpleTableWithEnum => AnyT::TestSimpleTableWithEnum(Box::new(
177         self.test_as_test_simple_table_with_enum()
178             .expect("Invalid union table, expected `Any::TestSimpleTableWithEnum`.")
179             .unpack()
180       )),
181       Any::MyGame_Example2_Monster => AnyT::MyGameExample2Monster(Box::new(
182         self.test_as_my_game_example_2_monster()
183             .expect("Invalid union table, expected `Any::MyGame_Example2_Monster`.")
184             .unpack()
185       )),
186       _ => AnyT::NONE,
187     };
188     let test4 = self.test4().map(|x| {
189       x.iter().map(|t| t.unpack()).collect()
190     });
191     let testarrayofstring = self.testarrayofstring().map(|x| {
192       x.iter().map(|s| s.to_string()).collect()
193     });
194     let testarrayoftables = self.testarrayoftables().map(|x| {
195       x.iter().map(|t| t.unpack()).collect()
196     });
197     let enemy = self.enemy().map(|x| {
198       Box::new(x.unpack())
199     });
200     let testnestedflatbuffer = self.testnestedflatbuffer().map(|x| {
201       x.to_vec()
202     });
203     let testempty = self.testempty().map(|x| {
204       Box::new(x.unpack())
205     });
206     let testbool = self.testbool();
207     let testhashs32_fnv1 = self.testhashs32_fnv1();
208     let testhashu32_fnv1 = self.testhashu32_fnv1();
209     let testhashs64_fnv1 = self.testhashs64_fnv1();
210     let testhashu64_fnv1 = self.testhashu64_fnv1();
211     let testhashs32_fnv1a = self.testhashs32_fnv1a();
212     let testhashu32_fnv1a = self.testhashu32_fnv1a();
213     let testhashs64_fnv1a = self.testhashs64_fnv1a();
214     let testhashu64_fnv1a = self.testhashu64_fnv1a();
215     let testarrayofbools = self.testarrayofbools().map(|x| {
216       x.to_vec()
217     });
218     let testf = self.testf();
219     let testf2 = self.testf2();
220     let testf3 = self.testf3();
221     let testarrayofstring2 = self.testarrayofstring2().map(|x| {
222       x.iter().map(|s| s.to_string()).collect()
223     });
224     let testarrayofsortedstruct = self.testarrayofsortedstruct().map(|x| {
225       x.iter().map(|t| t.unpack()).collect()
226     });
227     let flex = self.flex().map(|x| {
228       x.to_vec()
229     });
230     let test5 = self.test5().map(|x| {
231       x.iter().map(|t| t.unpack()).collect()
232     });
233     let vector_of_longs = self.vector_of_longs().map(|x| {
234       x.into_iter().collect()
235     });
236     let vector_of_doubles = self.vector_of_doubles().map(|x| {
237       x.into_iter().collect()
238     });
239     let parent_namespace_test = self.parent_namespace_test().map(|x| {
240       Box::new(x.unpack())
241     });
242     let vector_of_referrables = self.vector_of_referrables().map(|x| {
243       x.iter().map(|t| t.unpack()).collect()
244     });
245     let single_weak_reference = self.single_weak_reference();
246     let vector_of_weak_references = self.vector_of_weak_references().map(|x| {
247       x.into_iter().collect()
248     });
249     let vector_of_strong_referrables = self.vector_of_strong_referrables().map(|x| {
250       x.iter().map(|t| t.unpack()).collect()
251     });
252     let co_owning_reference = self.co_owning_reference();
253     let vector_of_co_owning_references = self.vector_of_co_owning_references().map(|x| {
254       x.into_iter().collect()
255     });
256     let non_owning_reference = self.non_owning_reference();
257     let vector_of_non_owning_references = self.vector_of_non_owning_references().map(|x| {
258       x.into_iter().collect()
259     });
260     let any_unique = match self.any_unique_type() {
261       AnyUniqueAliases::NONE => AnyUniqueAliasesT::NONE,
262       AnyUniqueAliases::M => AnyUniqueAliasesT::M(Box::new(
263         self.any_unique_as_m()
264             .expect("Invalid union table, expected `AnyUniqueAliases::M`.")
265             .unpack()
266       )),
267       AnyUniqueAliases::TS => AnyUniqueAliasesT::TS(Box::new(
268         self.any_unique_as_ts()
269             .expect("Invalid union table, expected `AnyUniqueAliases::TS`.")
270             .unpack()
271       )),
272       AnyUniqueAliases::M2 => AnyUniqueAliasesT::M2(Box::new(
273         self.any_unique_as_m2()
274             .expect("Invalid union table, expected `AnyUniqueAliases::M2`.")
275             .unpack()
276       )),
277       _ => AnyUniqueAliasesT::NONE,
278     };
279     let any_ambiguous = match self.any_ambiguous_type() {
280       AnyAmbiguousAliases::NONE => AnyAmbiguousAliasesT::NONE,
281       AnyAmbiguousAliases::M1 => AnyAmbiguousAliasesT::M1(Box::new(
282         self.any_ambiguous_as_m1()
283             .expect("Invalid union table, expected `AnyAmbiguousAliases::M1`.")
284             .unpack()
285       )),
286       AnyAmbiguousAliases::M2 => AnyAmbiguousAliasesT::M2(Box::new(
287         self.any_ambiguous_as_m2()
288             .expect("Invalid union table, expected `AnyAmbiguousAliases::M2`.")
289             .unpack()
290       )),
291       AnyAmbiguousAliases::M3 => AnyAmbiguousAliasesT::M3(Box::new(
292         self.any_ambiguous_as_m3()
293             .expect("Invalid union table, expected `AnyAmbiguousAliases::M3`.")
294             .unpack()
295       )),
296       _ => AnyAmbiguousAliasesT::NONE,
297     };
298     let vector_of_enums = self.vector_of_enums().map(|x| {
299       x.into_iter().collect()
300     });
301     let signed_enum = self.signed_enum();
302     let testrequirednestedflatbuffer = self.testrequirednestedflatbuffer().map(|x| {
303       x.to_vec()
304     });
305     let scalar_key_sorted_tables = self.scalar_key_sorted_tables().map(|x| {
306       x.iter().map(|t| t.unpack()).collect()
307     });
308     let native_inline = self.native_inline().map(|x| {
309       x.unpack()
310     });
311     let long_enum_non_enum_default = self.long_enum_non_enum_default();
312     let long_enum_normal_default = self.long_enum_normal_default();
313     MonsterT {
314       pos,
315       mana,
316       hp,
317       name,
318       inventory,
319       color,
320       test,
321       test4,
322       testarrayofstring,
323       testarrayoftables,
324       enemy,
325       testnestedflatbuffer,
326       testempty,
327       testbool,
328       testhashs32_fnv1,
329       testhashu32_fnv1,
330       testhashs64_fnv1,
331       testhashu64_fnv1,
332       testhashs32_fnv1a,
333       testhashu32_fnv1a,
334       testhashs64_fnv1a,
335       testhashu64_fnv1a,
336       testarrayofbools,
337       testf,
338       testf2,
339       testf3,
340       testarrayofstring2,
341       testarrayofsortedstruct,
342       flex,
343       test5,
344       vector_of_longs,
345       vector_of_doubles,
346       parent_namespace_test,
347       vector_of_referrables,
348       single_weak_reference,
349       vector_of_weak_references,
350       vector_of_strong_referrables,
351       co_owning_reference,
352       vector_of_co_owning_references,
353       non_owning_reference,
354       vector_of_non_owning_references,
355       any_unique,
356       any_ambiguous,
357       vector_of_enums,
358       signed_enum,
359       testrequirednestedflatbuffer,
360       scalar_key_sorted_tables,
361       native_inline,
362       long_enum_non_enum_default,
363       long_enum_normal_default,
364     }
365   }
366 
367   #[inline]
pos(&self) -> Option<&'a Vec3>368   pub fn pos(&self) -> Option<&'a Vec3> {
369     self._tab.get::<Vec3>(Monster::VT_POS, None)
370   }
371   #[inline]
mana(&self) -> i16372   pub fn mana(&self) -> i16 {
373     self._tab.get::<i16>(Monster::VT_MANA, Some(150)).unwrap()
374   }
375   #[inline]
hp(&self) -> i16376   pub fn hp(&self) -> i16 {
377     self._tab.get::<i16>(Monster::VT_HP, Some(100)).unwrap()
378   }
379   #[inline]
name(&self) -> &'a str380   pub fn name(&self) -> &'a str {
381     self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(Monster::VT_NAME, None).unwrap()
382   }
383   #[inline]
key_compare_less_than(&self, o: &Monster) -> bool384   pub fn key_compare_less_than(&self, o: &Monster) -> bool {
385     self.name() < o.name()
386   }
387 
388   #[inline]
key_compare_with_value(&self, val: & str) -> ::core::cmp::Ordering389   pub fn key_compare_with_value(&self, val: & str) -> ::core::cmp::Ordering {
390     let key = self.name();
391     key.cmp(val)
392   }
393   #[inline]
inventory(&self) -> Option<&'a [u8]>394   pub fn inventory(&self) -> Option<&'a [u8]> {
395     self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, u8>>>(Monster::VT_INVENTORY, None).map(|v| v.safe_slice())
396   }
397   #[inline]
color(&self) -> Color398   pub fn color(&self) -> Color {
399     self._tab.get::<Color>(Monster::VT_COLOR, Some(Color::Blue)).unwrap()
400   }
401   #[inline]
test_type(&self) -> Any402   pub fn test_type(&self) -> Any {
403     self._tab.get::<Any>(Monster::VT_TEST_TYPE, Some(Any::NONE)).unwrap()
404   }
405   #[inline]
test(&self) -> Option<flatbuffers::Table<'a>>406   pub fn test(&self) -> Option<flatbuffers::Table<'a>> {
407     self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Table<'a>>>(Monster::VT_TEST, None)
408   }
409   #[inline]
test4(&self) -> Option<&'a [Test]>410   pub fn test4(&self) -> Option<&'a [Test]> {
411     self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, Test>>>(Monster::VT_TEST4, None).map(|v| v.safe_slice())
412   }
413   #[inline]
testarrayofstring(&self) -> Option<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<&'a str>>>414   pub fn testarrayofstring(&self) -> Option<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<&'a str>>> {
415     self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<&'a str>>>>(Monster::VT_TESTARRAYOFSTRING, None)
416   }
417   /// an example documentation comment: this will end up in the generated code
418   /// multiline too
419   #[inline]
testarrayoftables(&self) -> Option<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Monster<'a>>>>420   pub fn testarrayoftables(&self) -> Option<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Monster<'a>>>> {
421     self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Monster>>>>(Monster::VT_TESTARRAYOFTABLES, None)
422   }
423   #[inline]
enemy(&self) -> Option<Monster<'a>>424   pub fn enemy(&self) -> Option<Monster<'a>> {
425     self._tab.get::<flatbuffers::ForwardsUOffset<Monster>>(Monster::VT_ENEMY, None)
426   }
427   #[inline]
testnestedflatbuffer(&self) -> Option<&'a [u8]>428   pub fn testnestedflatbuffer(&self) -> Option<&'a [u8]> {
429     self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, u8>>>(Monster::VT_TESTNESTEDFLATBUFFER, None).map(|v| v.safe_slice())
430   }
testnestedflatbuffer_nested_flatbuffer(&'a self) -> Option<Monster<'a>>431   pub fn testnestedflatbuffer_nested_flatbuffer(&'a self) -> Option<Monster<'a>> {
432     self.testnestedflatbuffer().map(|data| {
433       use flatbuffers::Follow;
434       <flatbuffers::ForwardsUOffset<Monster<'a>>>::follow(data, 0)
435     })
436   }
437   #[inline]
testempty(&self) -> Option<Stat<'a>>438   pub fn testempty(&self) -> Option<Stat<'a>> {
439     self._tab.get::<flatbuffers::ForwardsUOffset<Stat>>(Monster::VT_TESTEMPTY, None)
440   }
441   #[inline]
testbool(&self) -> bool442   pub fn testbool(&self) -> bool {
443     self._tab.get::<bool>(Monster::VT_TESTBOOL, Some(false)).unwrap()
444   }
445   #[inline]
testhashs32_fnv1(&self) -> i32446   pub fn testhashs32_fnv1(&self) -> i32 {
447     self._tab.get::<i32>(Monster::VT_TESTHASHS32_FNV1, Some(0)).unwrap()
448   }
449   #[inline]
testhashu32_fnv1(&self) -> u32450   pub fn testhashu32_fnv1(&self) -> u32 {
451     self._tab.get::<u32>(Monster::VT_TESTHASHU32_FNV1, Some(0)).unwrap()
452   }
453   #[inline]
testhashs64_fnv1(&self) -> i64454   pub fn testhashs64_fnv1(&self) -> i64 {
455     self._tab.get::<i64>(Monster::VT_TESTHASHS64_FNV1, Some(0)).unwrap()
456   }
457   #[inline]
testhashu64_fnv1(&self) -> u64458   pub fn testhashu64_fnv1(&self) -> u64 {
459     self._tab.get::<u64>(Monster::VT_TESTHASHU64_FNV1, Some(0)).unwrap()
460   }
461   #[inline]
testhashs32_fnv1a(&self) -> i32462   pub fn testhashs32_fnv1a(&self) -> i32 {
463     self._tab.get::<i32>(Monster::VT_TESTHASHS32_FNV1A, Some(0)).unwrap()
464   }
465   #[inline]
testhashu32_fnv1a(&self) -> u32466   pub fn testhashu32_fnv1a(&self) -> u32 {
467     self._tab.get::<u32>(Monster::VT_TESTHASHU32_FNV1A, Some(0)).unwrap()
468   }
469   #[inline]
testhashs64_fnv1a(&self) -> i64470   pub fn testhashs64_fnv1a(&self) -> i64 {
471     self._tab.get::<i64>(Monster::VT_TESTHASHS64_FNV1A, Some(0)).unwrap()
472   }
473   #[inline]
testhashu64_fnv1a(&self) -> u64474   pub fn testhashu64_fnv1a(&self) -> u64 {
475     self._tab.get::<u64>(Monster::VT_TESTHASHU64_FNV1A, Some(0)).unwrap()
476   }
477   #[inline]
testarrayofbools(&self) -> Option<&'a [bool]>478   pub fn testarrayofbools(&self) -> Option<&'a [bool]> {
479     self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, bool>>>(Monster::VT_TESTARRAYOFBOOLS, None).map(|v| v.safe_slice())
480   }
481   #[inline]
testf(&self) -> f32482   pub fn testf(&self) -> f32 {
483     self._tab.get::<f32>(Monster::VT_TESTF, Some(3.14159)).unwrap()
484   }
485   #[inline]
testf2(&self) -> f32486   pub fn testf2(&self) -> f32 {
487     self._tab.get::<f32>(Monster::VT_TESTF2, Some(3.0)).unwrap()
488   }
489   #[inline]
testf3(&self) -> f32490   pub fn testf3(&self) -> f32 {
491     self._tab.get::<f32>(Monster::VT_TESTF3, Some(0.0)).unwrap()
492   }
493   #[inline]
testarrayofstring2(&self) -> Option<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<&'a str>>>494   pub fn testarrayofstring2(&self) -> Option<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<&'a str>>> {
495     self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<&'a str>>>>(Monster::VT_TESTARRAYOFSTRING2, None)
496   }
497   #[inline]
testarrayofsortedstruct(&self) -> Option<&'a [Ability]>498   pub fn testarrayofsortedstruct(&self) -> Option<&'a [Ability]> {
499     self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, Ability>>>(Monster::VT_TESTARRAYOFSORTEDSTRUCT, None).map(|v| v.safe_slice())
500   }
501   #[inline]
flex(&self) -> Option<&'a [u8]>502   pub fn flex(&self) -> Option<&'a [u8]> {
503     self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, u8>>>(Monster::VT_FLEX, None).map(|v| v.safe_slice())
504   }
505   #[inline]
test5(&self) -> Option<&'a [Test]>506   pub fn test5(&self) -> Option<&'a [Test]> {
507     self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, Test>>>(Monster::VT_TEST5, None).map(|v| v.safe_slice())
508   }
509   #[inline]
vector_of_longs(&self) -> Option<flatbuffers::Vector<'a, i64>>510   pub fn vector_of_longs(&self) -> Option<flatbuffers::Vector<'a, i64>> {
511     self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, i64>>>(Monster::VT_VECTOR_OF_LONGS, None)
512   }
513   #[inline]
vector_of_doubles(&self) -> Option<flatbuffers::Vector<'a, f64>>514   pub fn vector_of_doubles(&self) -> Option<flatbuffers::Vector<'a, f64>> {
515     self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, f64>>>(Monster::VT_VECTOR_OF_DOUBLES, None)
516   }
517   #[inline]
parent_namespace_test(&self) -> Option<super::InParentNamespace<'a>>518   pub fn parent_namespace_test(&self) -> Option<super::InParentNamespace<'a>> {
519     self._tab.get::<flatbuffers::ForwardsUOffset<super::InParentNamespace>>(Monster::VT_PARENT_NAMESPACE_TEST, None)
520   }
521   #[inline]
vector_of_referrables(&self) -> Option<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Referrable<'a>>>>522   pub fn vector_of_referrables(&self) -> Option<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Referrable<'a>>>> {
523     self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Referrable>>>>(Monster::VT_VECTOR_OF_REFERRABLES, None)
524   }
525   #[inline]
single_weak_reference(&self) -> u64526   pub fn single_weak_reference(&self) -> u64 {
527     self._tab.get::<u64>(Monster::VT_SINGLE_WEAK_REFERENCE, Some(0)).unwrap()
528   }
529   #[inline]
vector_of_weak_references(&self) -> Option<flatbuffers::Vector<'a, u64>>530   pub fn vector_of_weak_references(&self) -> Option<flatbuffers::Vector<'a, u64>> {
531     self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, u64>>>(Monster::VT_VECTOR_OF_WEAK_REFERENCES, None)
532   }
533   #[inline]
vector_of_strong_referrables(&self) -> Option<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Referrable<'a>>>>534   pub fn vector_of_strong_referrables(&self) -> Option<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Referrable<'a>>>> {
535     self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Referrable>>>>(Monster::VT_VECTOR_OF_STRONG_REFERRABLES, None)
536   }
537   #[inline]
co_owning_reference(&self) -> u64538   pub fn co_owning_reference(&self) -> u64 {
539     self._tab.get::<u64>(Monster::VT_CO_OWNING_REFERENCE, Some(0)).unwrap()
540   }
541   #[inline]
vector_of_co_owning_references(&self) -> Option<flatbuffers::Vector<'a, u64>>542   pub fn vector_of_co_owning_references(&self) -> Option<flatbuffers::Vector<'a, u64>> {
543     self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, u64>>>(Monster::VT_VECTOR_OF_CO_OWNING_REFERENCES, None)
544   }
545   #[inline]
non_owning_reference(&self) -> u64546   pub fn non_owning_reference(&self) -> u64 {
547     self._tab.get::<u64>(Monster::VT_NON_OWNING_REFERENCE, Some(0)).unwrap()
548   }
549   #[inline]
vector_of_non_owning_references(&self) -> Option<flatbuffers::Vector<'a, u64>>550   pub fn vector_of_non_owning_references(&self) -> Option<flatbuffers::Vector<'a, u64>> {
551     self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, u64>>>(Monster::VT_VECTOR_OF_NON_OWNING_REFERENCES, None)
552   }
553   #[inline]
any_unique_type(&self) -> AnyUniqueAliases554   pub fn any_unique_type(&self) -> AnyUniqueAliases {
555     self._tab.get::<AnyUniqueAliases>(Monster::VT_ANY_UNIQUE_TYPE, Some(AnyUniqueAliases::NONE)).unwrap()
556   }
557   #[inline]
any_unique(&self) -> Option<flatbuffers::Table<'a>>558   pub fn any_unique(&self) -> Option<flatbuffers::Table<'a>> {
559     self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Table<'a>>>(Monster::VT_ANY_UNIQUE, None)
560   }
561   #[inline]
any_ambiguous_type(&self) -> AnyAmbiguousAliases562   pub fn any_ambiguous_type(&self) -> AnyAmbiguousAliases {
563     self._tab.get::<AnyAmbiguousAliases>(Monster::VT_ANY_AMBIGUOUS_TYPE, Some(AnyAmbiguousAliases::NONE)).unwrap()
564   }
565   #[inline]
any_ambiguous(&self) -> Option<flatbuffers::Table<'a>>566   pub fn any_ambiguous(&self) -> Option<flatbuffers::Table<'a>> {
567     self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Table<'a>>>(Monster::VT_ANY_AMBIGUOUS, None)
568   }
569   #[inline]
vector_of_enums(&self) -> Option<flatbuffers::Vector<'a, Color>>570   pub fn vector_of_enums(&self) -> Option<flatbuffers::Vector<'a, Color>> {
571     self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, Color>>>(Monster::VT_VECTOR_OF_ENUMS, None)
572   }
573   #[inline]
signed_enum(&self) -> Race574   pub fn signed_enum(&self) -> Race {
575     self._tab.get::<Race>(Monster::VT_SIGNED_ENUM, Some(Race::None)).unwrap()
576   }
577   #[inline]
testrequirednestedflatbuffer(&self) -> Option<&'a [u8]>578   pub fn testrequirednestedflatbuffer(&self) -> Option<&'a [u8]> {
579     self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, u8>>>(Monster::VT_TESTREQUIREDNESTEDFLATBUFFER, None).map(|v| v.safe_slice())
580   }
testrequirednestedflatbuffer_nested_flatbuffer(&'a self) -> Option<Monster<'a>>581   pub fn testrequirednestedflatbuffer_nested_flatbuffer(&'a self) -> Option<Monster<'a>> {
582     self.testrequirednestedflatbuffer().map(|data| {
583       use flatbuffers::Follow;
584       <flatbuffers::ForwardsUOffset<Monster<'a>>>::follow(data, 0)
585     })
586   }
587   #[inline]
scalar_key_sorted_tables(&self) -> Option<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Stat<'a>>>>588   pub fn scalar_key_sorted_tables(&self) -> Option<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Stat<'a>>>> {
589     self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Stat>>>>(Monster::VT_SCALAR_KEY_SORTED_TABLES, None)
590   }
591   #[inline]
native_inline(&self) -> Option<&'a Test>592   pub fn native_inline(&self) -> Option<&'a Test> {
593     self._tab.get::<Test>(Monster::VT_NATIVE_INLINE, None)
594   }
595   #[inline]
long_enum_non_enum_default(&self) -> LongEnum596   pub fn long_enum_non_enum_default(&self) -> LongEnum {
597     self._tab.get::<LongEnum>(Monster::VT_LONG_ENUM_NON_ENUM_DEFAULT, Some(Default::default())).unwrap()
598   }
599   #[inline]
long_enum_normal_default(&self) -> LongEnum600   pub fn long_enum_normal_default(&self) -> LongEnum {
601     self._tab.get::<LongEnum>(Monster::VT_LONG_ENUM_NORMAL_DEFAULT, Some(LongEnum::LongOne)).unwrap()
602   }
603   #[inline]
604   #[allow(non_snake_case)]
test_as_monster(&self) -> Option<Monster<'a>>605   pub fn test_as_monster(&self) -> Option<Monster<'a>> {
606     if self.test_type() == Any::Monster {
607       self.test().map(Monster::init_from_table)
608     } else {
609       None
610     }
611   }
612 
613   #[inline]
614   #[allow(non_snake_case)]
test_as_test_simple_table_with_enum(&self) -> Option<TestSimpleTableWithEnum<'a>>615   pub fn test_as_test_simple_table_with_enum(&self) -> Option<TestSimpleTableWithEnum<'a>> {
616     if self.test_type() == Any::TestSimpleTableWithEnum {
617       self.test().map(TestSimpleTableWithEnum::init_from_table)
618     } else {
619       None
620     }
621   }
622 
623   #[inline]
624   #[allow(non_snake_case)]
test_as_my_game_example_2_monster(&self) -> Option<super::example_2::Monster<'a>>625   pub fn test_as_my_game_example_2_monster(&self) -> Option<super::example_2::Monster<'a>> {
626     if self.test_type() == Any::MyGame_Example2_Monster {
627       self.test().map(super::example_2::Monster::init_from_table)
628     } else {
629       None
630     }
631   }
632 
633   #[inline]
634   #[allow(non_snake_case)]
any_unique_as_m(&self) -> Option<Monster<'a>>635   pub fn any_unique_as_m(&self) -> Option<Monster<'a>> {
636     if self.any_unique_type() == AnyUniqueAliases::M {
637       self.any_unique().map(Monster::init_from_table)
638     } else {
639       None
640     }
641   }
642 
643   #[inline]
644   #[allow(non_snake_case)]
any_unique_as_ts(&self) -> Option<TestSimpleTableWithEnum<'a>>645   pub fn any_unique_as_ts(&self) -> Option<TestSimpleTableWithEnum<'a>> {
646     if self.any_unique_type() == AnyUniqueAliases::TS {
647       self.any_unique().map(TestSimpleTableWithEnum::init_from_table)
648     } else {
649       None
650     }
651   }
652 
653   #[inline]
654   #[allow(non_snake_case)]
any_unique_as_m2(&self) -> Option<super::example_2::Monster<'a>>655   pub fn any_unique_as_m2(&self) -> Option<super::example_2::Monster<'a>> {
656     if self.any_unique_type() == AnyUniqueAliases::M2 {
657       self.any_unique().map(super::example_2::Monster::init_from_table)
658     } else {
659       None
660     }
661   }
662 
663   #[inline]
664   #[allow(non_snake_case)]
any_ambiguous_as_m1(&self) -> Option<Monster<'a>>665   pub fn any_ambiguous_as_m1(&self) -> Option<Monster<'a>> {
666     if self.any_ambiguous_type() == AnyAmbiguousAliases::M1 {
667       self.any_ambiguous().map(Monster::init_from_table)
668     } else {
669       None
670     }
671   }
672 
673   #[inline]
674   #[allow(non_snake_case)]
any_ambiguous_as_m2(&self) -> Option<Monster<'a>>675   pub fn any_ambiguous_as_m2(&self) -> Option<Monster<'a>> {
676     if self.any_ambiguous_type() == AnyAmbiguousAliases::M2 {
677       self.any_ambiguous().map(Monster::init_from_table)
678     } else {
679       None
680     }
681   }
682 
683   #[inline]
684   #[allow(non_snake_case)]
any_ambiguous_as_m3(&self) -> Option<Monster<'a>>685   pub fn any_ambiguous_as_m3(&self) -> Option<Monster<'a>> {
686     if self.any_ambiguous_type() == AnyAmbiguousAliases::M3 {
687       self.any_ambiguous().map(Monster::init_from_table)
688     } else {
689       None
690     }
691   }
692 
693 }
694 
695 impl flatbuffers::Verifiable for Monster<'_> {
696   #[inline]
run_verifier( v: &mut flatbuffers::Verifier, pos: usize ) -> Result<(), flatbuffers::InvalidFlatbuffer>697   fn run_verifier(
698     v: &mut flatbuffers::Verifier, pos: usize
699   ) -> Result<(), flatbuffers::InvalidFlatbuffer> {
700     use self::flatbuffers::Verifiable;
701     v.visit_table(pos)?
702      .visit_field::<Vec3>("pos", Self::VT_POS, false)?
703      .visit_field::<i16>("mana", Self::VT_MANA, false)?
704      .visit_field::<i16>("hp", Self::VT_HP, false)?
705      .visit_field::<flatbuffers::ForwardsUOffset<&str>>("name", Self::VT_NAME, true)?
706      .visit_field::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'_, u8>>>("inventory", Self::VT_INVENTORY, false)?
707      .visit_field::<Color>("color", Self::VT_COLOR, false)?
708      .visit_union::<Any, _>("test_type", Self::VT_TEST_TYPE, "test", Self::VT_TEST, false, |key, v, pos| {
709         match key {
710           Any::Monster => v.verify_union_variant::<flatbuffers::ForwardsUOffset<Monster>>("Any::Monster", pos),
711           Any::TestSimpleTableWithEnum => v.verify_union_variant::<flatbuffers::ForwardsUOffset<TestSimpleTableWithEnum>>("Any::TestSimpleTableWithEnum", pos),
712           Any::MyGame_Example2_Monster => v.verify_union_variant::<flatbuffers::ForwardsUOffset<super::example_2::Monster>>("Any::MyGame_Example2_Monster", pos),
713           _ => Ok(()),
714         }
715      })?
716      .visit_field::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'_, Test>>>("test4", Self::VT_TEST4, false)?
717      .visit_field::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'_, flatbuffers::ForwardsUOffset<&'_ str>>>>("testarrayofstring", Self::VT_TESTARRAYOFSTRING, false)?
718      .visit_field::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'_, flatbuffers::ForwardsUOffset<Monster>>>>("testarrayoftables", Self::VT_TESTARRAYOFTABLES, false)?
719      .visit_field::<flatbuffers::ForwardsUOffset<Monster>>("enemy", Self::VT_ENEMY, false)?
720      .visit_field::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'_, u8>>>("testnestedflatbuffer", Self::VT_TESTNESTEDFLATBUFFER, false)?
721      .visit_field::<flatbuffers::ForwardsUOffset<Stat>>("testempty", Self::VT_TESTEMPTY, false)?
722      .visit_field::<bool>("testbool", Self::VT_TESTBOOL, false)?
723      .visit_field::<i32>("testhashs32_fnv1", Self::VT_TESTHASHS32_FNV1, false)?
724      .visit_field::<u32>("testhashu32_fnv1", Self::VT_TESTHASHU32_FNV1, false)?
725      .visit_field::<i64>("testhashs64_fnv1", Self::VT_TESTHASHS64_FNV1, false)?
726      .visit_field::<u64>("testhashu64_fnv1", Self::VT_TESTHASHU64_FNV1, false)?
727      .visit_field::<i32>("testhashs32_fnv1a", Self::VT_TESTHASHS32_FNV1A, false)?
728      .visit_field::<u32>("testhashu32_fnv1a", Self::VT_TESTHASHU32_FNV1A, false)?
729      .visit_field::<i64>("testhashs64_fnv1a", Self::VT_TESTHASHS64_FNV1A, false)?
730      .visit_field::<u64>("testhashu64_fnv1a", Self::VT_TESTHASHU64_FNV1A, false)?
731      .visit_field::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'_, bool>>>("testarrayofbools", Self::VT_TESTARRAYOFBOOLS, false)?
732      .visit_field::<f32>("testf", Self::VT_TESTF, false)?
733      .visit_field::<f32>("testf2", Self::VT_TESTF2, false)?
734      .visit_field::<f32>("testf3", Self::VT_TESTF3, false)?
735      .visit_field::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'_, flatbuffers::ForwardsUOffset<&'_ str>>>>("testarrayofstring2", Self::VT_TESTARRAYOFSTRING2, false)?
736      .visit_field::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'_, Ability>>>("testarrayofsortedstruct", Self::VT_TESTARRAYOFSORTEDSTRUCT, false)?
737      .visit_field::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'_, u8>>>("flex", Self::VT_FLEX, false)?
738      .visit_field::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'_, Test>>>("test5", Self::VT_TEST5, false)?
739      .visit_field::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'_, i64>>>("vector_of_longs", Self::VT_VECTOR_OF_LONGS, false)?
740      .visit_field::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'_, f64>>>("vector_of_doubles", Self::VT_VECTOR_OF_DOUBLES, false)?
741      .visit_field::<flatbuffers::ForwardsUOffset<super::InParentNamespace>>("parent_namespace_test", Self::VT_PARENT_NAMESPACE_TEST, false)?
742      .visit_field::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'_, flatbuffers::ForwardsUOffset<Referrable>>>>("vector_of_referrables", Self::VT_VECTOR_OF_REFERRABLES, false)?
743      .visit_field::<u64>("single_weak_reference", Self::VT_SINGLE_WEAK_REFERENCE, false)?
744      .visit_field::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'_, u64>>>("vector_of_weak_references", Self::VT_VECTOR_OF_WEAK_REFERENCES, false)?
745      .visit_field::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'_, flatbuffers::ForwardsUOffset<Referrable>>>>("vector_of_strong_referrables", Self::VT_VECTOR_OF_STRONG_REFERRABLES, false)?
746      .visit_field::<u64>("co_owning_reference", Self::VT_CO_OWNING_REFERENCE, false)?
747      .visit_field::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'_, u64>>>("vector_of_co_owning_references", Self::VT_VECTOR_OF_CO_OWNING_REFERENCES, false)?
748      .visit_field::<u64>("non_owning_reference", Self::VT_NON_OWNING_REFERENCE, false)?
749      .visit_field::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'_, u64>>>("vector_of_non_owning_references", Self::VT_VECTOR_OF_NON_OWNING_REFERENCES, false)?
750      .visit_union::<AnyUniqueAliases, _>("any_unique_type", Self::VT_ANY_UNIQUE_TYPE, "any_unique", Self::VT_ANY_UNIQUE, false, |key, v, pos| {
751         match key {
752           AnyUniqueAliases::M => v.verify_union_variant::<flatbuffers::ForwardsUOffset<Monster>>("AnyUniqueAliases::M", pos),
753           AnyUniqueAliases::TS => v.verify_union_variant::<flatbuffers::ForwardsUOffset<TestSimpleTableWithEnum>>("AnyUniqueAliases::TS", pos),
754           AnyUniqueAliases::M2 => v.verify_union_variant::<flatbuffers::ForwardsUOffset<super::example_2::Monster>>("AnyUniqueAliases::M2", pos),
755           _ => Ok(()),
756         }
757      })?
758      .visit_union::<AnyAmbiguousAliases, _>("any_ambiguous_type", Self::VT_ANY_AMBIGUOUS_TYPE, "any_ambiguous", Self::VT_ANY_AMBIGUOUS, false, |key, v, pos| {
759         match key {
760           AnyAmbiguousAliases::M1 => v.verify_union_variant::<flatbuffers::ForwardsUOffset<Monster>>("AnyAmbiguousAliases::M1", pos),
761           AnyAmbiguousAliases::M2 => v.verify_union_variant::<flatbuffers::ForwardsUOffset<Monster>>("AnyAmbiguousAliases::M2", pos),
762           AnyAmbiguousAliases::M3 => v.verify_union_variant::<flatbuffers::ForwardsUOffset<Monster>>("AnyAmbiguousAliases::M3", pos),
763           _ => Ok(()),
764         }
765      })?
766      .visit_field::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'_, Color>>>("vector_of_enums", Self::VT_VECTOR_OF_ENUMS, false)?
767      .visit_field::<Race>("signed_enum", Self::VT_SIGNED_ENUM, false)?
768      .visit_field::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'_, u8>>>("testrequirednestedflatbuffer", Self::VT_TESTREQUIREDNESTEDFLATBUFFER, false)?
769      .visit_field::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'_, flatbuffers::ForwardsUOffset<Stat>>>>("scalar_key_sorted_tables", Self::VT_SCALAR_KEY_SORTED_TABLES, false)?
770      .visit_field::<Test>("native_inline", Self::VT_NATIVE_INLINE, false)?
771      .visit_field::<LongEnum>("long_enum_non_enum_default", Self::VT_LONG_ENUM_NON_ENUM_DEFAULT, false)?
772      .visit_field::<LongEnum>("long_enum_normal_default", Self::VT_LONG_ENUM_NORMAL_DEFAULT, false)?
773      .finish();
774     Ok(())
775   }
776 }
777 pub struct MonsterArgs<'a> {
778     pub pos: Option<&'a Vec3>,
779     pub mana: i16,
780     pub hp: i16,
781     pub name: Option<flatbuffers::WIPOffset<&'a str>>,
782     pub inventory: Option<flatbuffers::WIPOffset<flatbuffers::Vector<'a, u8>>>,
783     pub color: Color,
784     pub test_type: Any,
785     pub test: Option<flatbuffers::WIPOffset<flatbuffers::UnionWIPOffset>>,
786     pub test4: Option<flatbuffers::WIPOffset<flatbuffers::Vector<'a, Test>>>,
787     pub testarrayofstring: Option<flatbuffers::WIPOffset<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<&'a str>>>>,
788     pub testarrayoftables: Option<flatbuffers::WIPOffset<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Monster<'a>>>>>,
789     pub enemy: Option<flatbuffers::WIPOffset<Monster<'a>>>,
790     pub testnestedflatbuffer: Option<flatbuffers::WIPOffset<flatbuffers::Vector<'a, u8>>>,
791     pub testempty: Option<flatbuffers::WIPOffset<Stat<'a>>>,
792     pub testbool: bool,
793     pub testhashs32_fnv1: i32,
794     pub testhashu32_fnv1: u32,
795     pub testhashs64_fnv1: i64,
796     pub testhashu64_fnv1: u64,
797     pub testhashs32_fnv1a: i32,
798     pub testhashu32_fnv1a: u32,
799     pub testhashs64_fnv1a: i64,
800     pub testhashu64_fnv1a: u64,
801     pub testarrayofbools: Option<flatbuffers::WIPOffset<flatbuffers::Vector<'a, bool>>>,
802     pub testf: f32,
803     pub testf2: f32,
804     pub testf3: f32,
805     pub testarrayofstring2: Option<flatbuffers::WIPOffset<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<&'a str>>>>,
806     pub testarrayofsortedstruct: Option<flatbuffers::WIPOffset<flatbuffers::Vector<'a, Ability>>>,
807     pub flex: Option<flatbuffers::WIPOffset<flatbuffers::Vector<'a, u8>>>,
808     pub test5: Option<flatbuffers::WIPOffset<flatbuffers::Vector<'a, Test>>>,
809     pub vector_of_longs: Option<flatbuffers::WIPOffset<flatbuffers::Vector<'a, i64>>>,
810     pub vector_of_doubles: Option<flatbuffers::WIPOffset<flatbuffers::Vector<'a, f64>>>,
811     pub parent_namespace_test: Option<flatbuffers::WIPOffset<super::InParentNamespace<'a>>>,
812     pub vector_of_referrables: Option<flatbuffers::WIPOffset<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Referrable<'a>>>>>,
813     pub single_weak_reference: u64,
814     pub vector_of_weak_references: Option<flatbuffers::WIPOffset<flatbuffers::Vector<'a, u64>>>,
815     pub vector_of_strong_referrables: Option<flatbuffers::WIPOffset<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Referrable<'a>>>>>,
816     pub co_owning_reference: u64,
817     pub vector_of_co_owning_references: Option<flatbuffers::WIPOffset<flatbuffers::Vector<'a, u64>>>,
818     pub non_owning_reference: u64,
819     pub vector_of_non_owning_references: Option<flatbuffers::WIPOffset<flatbuffers::Vector<'a, u64>>>,
820     pub any_unique_type: AnyUniqueAliases,
821     pub any_unique: Option<flatbuffers::WIPOffset<flatbuffers::UnionWIPOffset>>,
822     pub any_ambiguous_type: AnyAmbiguousAliases,
823     pub any_ambiguous: Option<flatbuffers::WIPOffset<flatbuffers::UnionWIPOffset>>,
824     pub vector_of_enums: Option<flatbuffers::WIPOffset<flatbuffers::Vector<'a, Color>>>,
825     pub signed_enum: Race,
826     pub testrequirednestedflatbuffer: Option<flatbuffers::WIPOffset<flatbuffers::Vector<'a, u8>>>,
827     pub scalar_key_sorted_tables: Option<flatbuffers::WIPOffset<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Stat<'a>>>>>,
828     pub native_inline: Option<&'a Test>,
829     pub long_enum_non_enum_default: LongEnum,
830     pub long_enum_normal_default: LongEnum,
831 }
832 impl<'a> Default for MonsterArgs<'a> {
833   #[inline]
default() -> Self834   fn default() -> Self {
835     MonsterArgs {
836       pos: None,
837       mana: 150,
838       hp: 100,
839       name: None, // required field
840       inventory: None,
841       color: Color::Blue,
842       test_type: Any::NONE,
843       test: None,
844       test4: None,
845       testarrayofstring: None,
846       testarrayoftables: None,
847       enemy: None,
848       testnestedflatbuffer: None,
849       testempty: None,
850       testbool: false,
851       testhashs32_fnv1: 0,
852       testhashu32_fnv1: 0,
853       testhashs64_fnv1: 0,
854       testhashu64_fnv1: 0,
855       testhashs32_fnv1a: 0,
856       testhashu32_fnv1a: 0,
857       testhashs64_fnv1a: 0,
858       testhashu64_fnv1a: 0,
859       testarrayofbools: None,
860       testf: 3.14159,
861       testf2: 3.0,
862       testf3: 0.0,
863       testarrayofstring2: None,
864       testarrayofsortedstruct: None,
865       flex: None,
866       test5: None,
867       vector_of_longs: None,
868       vector_of_doubles: None,
869       parent_namespace_test: None,
870       vector_of_referrables: None,
871       single_weak_reference: 0,
872       vector_of_weak_references: None,
873       vector_of_strong_referrables: None,
874       co_owning_reference: 0,
875       vector_of_co_owning_references: None,
876       non_owning_reference: 0,
877       vector_of_non_owning_references: None,
878       any_unique_type: AnyUniqueAliases::NONE,
879       any_unique: None,
880       any_ambiguous_type: AnyAmbiguousAliases::NONE,
881       any_ambiguous: None,
882       vector_of_enums: None,
883       signed_enum: Race::None,
884       testrequirednestedflatbuffer: None,
885       scalar_key_sorted_tables: None,
886       native_inline: None,
887       long_enum_non_enum_default: Default::default(),
888       long_enum_normal_default: LongEnum::LongOne,
889     }
890   }
891 }
892 
893 impl Serialize for Monster<'_> {
serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> where S: Serializer,894   fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
895   where
896     S: Serializer,
897   {
898     let mut s = serializer.serialize_struct("Monster", 54)?;
899       if let Some(f) = self.pos() {
900         s.serialize_field("pos", &f)?;
901       } else {
902         s.skip_field("pos")?;
903       }
904       s.serialize_field("mana", &self.mana())?;
905       s.serialize_field("hp", &self.hp())?;
906       s.serialize_field("name", &self.name())?;
907       if let Some(f) = self.inventory() {
908         s.serialize_field("inventory", &f)?;
909       } else {
910         s.skip_field("inventory")?;
911       }
912       s.serialize_field("color", &self.color())?;
913       s.serialize_field("test_type", &self.test_type())?;
914       match self.test_type() {
915         Any::NONE => (),
916           Any::Monster => {
917             let f = self.test_as_monster()
918               .expect("Invalid union table, expected `Any::Monster`.");
919             s.serialize_field("test", &f)?;
920           }
921           Any::TestSimpleTableWithEnum => {
922             let f = self.test_as_test_simple_table_with_enum()
923               .expect("Invalid union table, expected `Any::TestSimpleTableWithEnum`.");
924             s.serialize_field("test", &f)?;
925           }
926           Any::MyGame_Example2_Monster => {
927             let f = self.test_as_my_game_example_2_monster()
928               .expect("Invalid union table, expected `Any::MyGame_Example2_Monster`.");
929             s.serialize_field("test", &f)?;
930           }
931         _ => unimplemented!(),
932       }
933       if let Some(f) = self.test4() {
934         s.serialize_field("test4", &f)?;
935       } else {
936         s.skip_field("test4")?;
937       }
938       if let Some(f) = self.testarrayofstring() {
939         s.serialize_field("testarrayofstring", &f)?;
940       } else {
941         s.skip_field("testarrayofstring")?;
942       }
943       if let Some(f) = self.testarrayoftables() {
944         s.serialize_field("testarrayoftables", &f)?;
945       } else {
946         s.skip_field("testarrayoftables")?;
947       }
948       if let Some(f) = self.enemy() {
949         s.serialize_field("enemy", &f)?;
950       } else {
951         s.skip_field("enemy")?;
952       }
953       if let Some(f) = self.testnestedflatbuffer() {
954         s.serialize_field("testnestedflatbuffer", &f)?;
955       } else {
956         s.skip_field("testnestedflatbuffer")?;
957       }
958       if let Some(f) = self.testempty() {
959         s.serialize_field("testempty", &f)?;
960       } else {
961         s.skip_field("testempty")?;
962       }
963       s.serialize_field("testbool", &self.testbool())?;
964       s.serialize_field("testhashs32_fnv1", &self.testhashs32_fnv1())?;
965       s.serialize_field("testhashu32_fnv1", &self.testhashu32_fnv1())?;
966       s.serialize_field("testhashs64_fnv1", &self.testhashs64_fnv1())?;
967       s.serialize_field("testhashu64_fnv1", &self.testhashu64_fnv1())?;
968       s.serialize_field("testhashs32_fnv1a", &self.testhashs32_fnv1a())?;
969       s.serialize_field("testhashu32_fnv1a", &self.testhashu32_fnv1a())?;
970       s.serialize_field("testhashs64_fnv1a", &self.testhashs64_fnv1a())?;
971       s.serialize_field("testhashu64_fnv1a", &self.testhashu64_fnv1a())?;
972       if let Some(f) = self.testarrayofbools() {
973         s.serialize_field("testarrayofbools", &f)?;
974       } else {
975         s.skip_field("testarrayofbools")?;
976       }
977       s.serialize_field("testf", &self.testf())?;
978       s.serialize_field("testf2", &self.testf2())?;
979       s.serialize_field("testf3", &self.testf3())?;
980       if let Some(f) = self.testarrayofstring2() {
981         s.serialize_field("testarrayofstring2", &f)?;
982       } else {
983         s.skip_field("testarrayofstring2")?;
984       }
985       if let Some(f) = self.testarrayofsortedstruct() {
986         s.serialize_field("testarrayofsortedstruct", &f)?;
987       } else {
988         s.skip_field("testarrayofsortedstruct")?;
989       }
990       if let Some(f) = self.flex() {
991         s.serialize_field("flex", &f)?;
992       } else {
993         s.skip_field("flex")?;
994       }
995       if let Some(f) = self.test5() {
996         s.serialize_field("test5", &f)?;
997       } else {
998         s.skip_field("test5")?;
999       }
1000       if let Some(f) = self.vector_of_longs() {
1001         s.serialize_field("vector_of_longs", &f)?;
1002       } else {
1003         s.skip_field("vector_of_longs")?;
1004       }
1005       if let Some(f) = self.vector_of_doubles() {
1006         s.serialize_field("vector_of_doubles", &f)?;
1007       } else {
1008         s.skip_field("vector_of_doubles")?;
1009       }
1010       if let Some(f) = self.parent_namespace_test() {
1011         s.serialize_field("parent_namespace_test", &f)?;
1012       } else {
1013         s.skip_field("parent_namespace_test")?;
1014       }
1015       if let Some(f) = self.vector_of_referrables() {
1016         s.serialize_field("vector_of_referrables", &f)?;
1017       } else {
1018         s.skip_field("vector_of_referrables")?;
1019       }
1020       s.serialize_field("single_weak_reference", &self.single_weak_reference())?;
1021       if let Some(f) = self.vector_of_weak_references() {
1022         s.serialize_field("vector_of_weak_references", &f)?;
1023       } else {
1024         s.skip_field("vector_of_weak_references")?;
1025       }
1026       if let Some(f) = self.vector_of_strong_referrables() {
1027         s.serialize_field("vector_of_strong_referrables", &f)?;
1028       } else {
1029         s.skip_field("vector_of_strong_referrables")?;
1030       }
1031       s.serialize_field("co_owning_reference", &self.co_owning_reference())?;
1032       if let Some(f) = self.vector_of_co_owning_references() {
1033         s.serialize_field("vector_of_co_owning_references", &f)?;
1034       } else {
1035         s.skip_field("vector_of_co_owning_references")?;
1036       }
1037       s.serialize_field("non_owning_reference", &self.non_owning_reference())?;
1038       if let Some(f) = self.vector_of_non_owning_references() {
1039         s.serialize_field("vector_of_non_owning_references", &f)?;
1040       } else {
1041         s.skip_field("vector_of_non_owning_references")?;
1042       }
1043       s.serialize_field("any_unique_type", &self.any_unique_type())?;
1044       match self.any_unique_type() {
1045         AnyUniqueAliases::NONE => (),
1046           AnyUniqueAliases::M => {
1047             let f = self.any_unique_as_m()
1048               .expect("Invalid union table, expected `AnyUniqueAliases::M`.");
1049             s.serialize_field("any_unique", &f)?;
1050           }
1051           AnyUniqueAliases::TS => {
1052             let f = self.any_unique_as_ts()
1053               .expect("Invalid union table, expected `AnyUniqueAliases::TS`.");
1054             s.serialize_field("any_unique", &f)?;
1055           }
1056           AnyUniqueAliases::M2 => {
1057             let f = self.any_unique_as_m2()
1058               .expect("Invalid union table, expected `AnyUniqueAliases::M2`.");
1059             s.serialize_field("any_unique", &f)?;
1060           }
1061         _ => unimplemented!(),
1062       }
1063       s.serialize_field("any_ambiguous_type", &self.any_ambiguous_type())?;
1064       match self.any_ambiguous_type() {
1065         AnyAmbiguousAliases::NONE => (),
1066           AnyAmbiguousAliases::M1 => {
1067             let f = self.any_ambiguous_as_m1()
1068               .expect("Invalid union table, expected `AnyAmbiguousAliases::M1`.");
1069             s.serialize_field("any_ambiguous", &f)?;
1070           }
1071           AnyAmbiguousAliases::M2 => {
1072             let f = self.any_ambiguous_as_m2()
1073               .expect("Invalid union table, expected `AnyAmbiguousAliases::M2`.");
1074             s.serialize_field("any_ambiguous", &f)?;
1075           }
1076           AnyAmbiguousAliases::M3 => {
1077             let f = self.any_ambiguous_as_m3()
1078               .expect("Invalid union table, expected `AnyAmbiguousAliases::M3`.");
1079             s.serialize_field("any_ambiguous", &f)?;
1080           }
1081         _ => unimplemented!(),
1082       }
1083       if let Some(f) = self.vector_of_enums() {
1084         s.serialize_field("vector_of_enums", &f)?;
1085       } else {
1086         s.skip_field("vector_of_enums")?;
1087       }
1088       s.serialize_field("signed_enum", &self.signed_enum())?;
1089       if let Some(f) = self.testrequirednestedflatbuffer() {
1090         s.serialize_field("testrequirednestedflatbuffer", &f)?;
1091       } else {
1092         s.skip_field("testrequirednestedflatbuffer")?;
1093       }
1094       if let Some(f) = self.scalar_key_sorted_tables() {
1095         s.serialize_field("scalar_key_sorted_tables", &f)?;
1096       } else {
1097         s.skip_field("scalar_key_sorted_tables")?;
1098       }
1099       if let Some(f) = self.native_inline() {
1100         s.serialize_field("native_inline", &f)?;
1101       } else {
1102         s.skip_field("native_inline")?;
1103       }
1104       s.serialize_field("long_enum_non_enum_default", &self.long_enum_non_enum_default())?;
1105       s.serialize_field("long_enum_normal_default", &self.long_enum_normal_default())?;
1106     s.end()
1107   }
1108 }
1109 
1110 pub struct MonsterBuilder<'a: 'b, 'b> {
1111   fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>,
1112   start_: flatbuffers::WIPOffset<flatbuffers::TableUnfinishedWIPOffset>,
1113 }
1114 impl<'a: 'b, 'b> MonsterBuilder<'a, 'b> {
1115   #[inline]
add_pos(&mut self, pos: &Vec3)1116   pub fn add_pos(&mut self, pos: &Vec3) {
1117     self.fbb_.push_slot_always::<&Vec3>(Monster::VT_POS, pos);
1118   }
1119   #[inline]
add_mana(&mut self, mana: i16)1120   pub fn add_mana(&mut self, mana: i16) {
1121     self.fbb_.push_slot::<i16>(Monster::VT_MANA, mana, 150);
1122   }
1123   #[inline]
add_hp(&mut self, hp: i16)1124   pub fn add_hp(&mut self, hp: i16) {
1125     self.fbb_.push_slot::<i16>(Monster::VT_HP, hp, 100);
1126   }
1127   #[inline]
add_name(&mut self, name: flatbuffers::WIPOffset<&'b str>)1128   pub fn add_name(&mut self, name: flatbuffers::WIPOffset<&'b  str>) {
1129     self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Monster::VT_NAME, name);
1130   }
1131   #[inline]
add_inventory(&mut self, inventory: flatbuffers::WIPOffset<flatbuffers::Vector<'b , u8>>)1132   pub fn add_inventory(&mut self, inventory: flatbuffers::WIPOffset<flatbuffers::Vector<'b , u8>>) {
1133     self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Monster::VT_INVENTORY, inventory);
1134   }
1135   #[inline]
add_color(&mut self, color: Color)1136   pub fn add_color(&mut self, color: Color) {
1137     self.fbb_.push_slot::<Color>(Monster::VT_COLOR, color, Color::Blue);
1138   }
1139   #[inline]
add_test_type(&mut self, test_type: Any)1140   pub fn add_test_type(&mut self, test_type: Any) {
1141     self.fbb_.push_slot::<Any>(Monster::VT_TEST_TYPE, test_type, Any::NONE);
1142   }
1143   #[inline]
add_test(&mut self, test: flatbuffers::WIPOffset<flatbuffers::UnionWIPOffset>)1144   pub fn add_test(&mut self, test: flatbuffers::WIPOffset<flatbuffers::UnionWIPOffset>) {
1145     self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Monster::VT_TEST, test);
1146   }
1147   #[inline]
add_test4(&mut self, test4: flatbuffers::WIPOffset<flatbuffers::Vector<'b , Test>>)1148   pub fn add_test4(&mut self, test4: flatbuffers::WIPOffset<flatbuffers::Vector<'b , Test>>) {
1149     self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Monster::VT_TEST4, test4);
1150   }
1151   #[inline]
add_testarrayofstring(&mut self, testarrayofstring: flatbuffers::WIPOffset<flatbuffers::Vector<'b , flatbuffers::ForwardsUOffset<&'b str>>>)1152   pub fn add_testarrayofstring(&mut self, testarrayofstring: flatbuffers::WIPOffset<flatbuffers::Vector<'b , flatbuffers::ForwardsUOffset<&'b  str>>>) {
1153     self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Monster::VT_TESTARRAYOFSTRING, testarrayofstring);
1154   }
1155   #[inline]
add_testarrayoftables(&mut self, testarrayoftables: flatbuffers::WIPOffset<flatbuffers::Vector<'b , flatbuffers::ForwardsUOffset<Monster<'b >>>>)1156   pub fn add_testarrayoftables(&mut self, testarrayoftables: flatbuffers::WIPOffset<flatbuffers::Vector<'b , flatbuffers::ForwardsUOffset<Monster<'b >>>>) {
1157     self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Monster::VT_TESTARRAYOFTABLES, testarrayoftables);
1158   }
1159   #[inline]
add_enemy(&mut self, enemy: flatbuffers::WIPOffset<Monster<'b >>)1160   pub fn add_enemy(&mut self, enemy: flatbuffers::WIPOffset<Monster<'b >>) {
1161     self.fbb_.push_slot_always::<flatbuffers::WIPOffset<Monster>>(Monster::VT_ENEMY, enemy);
1162   }
1163   #[inline]
add_testnestedflatbuffer(&mut self, testnestedflatbuffer: flatbuffers::WIPOffset<flatbuffers::Vector<'b , u8>>)1164   pub fn add_testnestedflatbuffer(&mut self, testnestedflatbuffer: flatbuffers::WIPOffset<flatbuffers::Vector<'b , u8>>) {
1165     self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Monster::VT_TESTNESTEDFLATBUFFER, testnestedflatbuffer);
1166   }
1167   #[inline]
add_testempty(&mut self, testempty: flatbuffers::WIPOffset<Stat<'b >>)1168   pub fn add_testempty(&mut self, testempty: flatbuffers::WIPOffset<Stat<'b >>) {
1169     self.fbb_.push_slot_always::<flatbuffers::WIPOffset<Stat>>(Monster::VT_TESTEMPTY, testempty);
1170   }
1171   #[inline]
add_testbool(&mut self, testbool: bool)1172   pub fn add_testbool(&mut self, testbool: bool) {
1173     self.fbb_.push_slot::<bool>(Monster::VT_TESTBOOL, testbool, false);
1174   }
1175   #[inline]
add_testhashs32_fnv1(&mut self, testhashs32_fnv1: i32)1176   pub fn add_testhashs32_fnv1(&mut self, testhashs32_fnv1: i32) {
1177     self.fbb_.push_slot::<i32>(Monster::VT_TESTHASHS32_FNV1, testhashs32_fnv1, 0);
1178   }
1179   #[inline]
add_testhashu32_fnv1(&mut self, testhashu32_fnv1: u32)1180   pub fn add_testhashu32_fnv1(&mut self, testhashu32_fnv1: u32) {
1181     self.fbb_.push_slot::<u32>(Monster::VT_TESTHASHU32_FNV1, testhashu32_fnv1, 0);
1182   }
1183   #[inline]
add_testhashs64_fnv1(&mut self, testhashs64_fnv1: i64)1184   pub fn add_testhashs64_fnv1(&mut self, testhashs64_fnv1: i64) {
1185     self.fbb_.push_slot::<i64>(Monster::VT_TESTHASHS64_FNV1, testhashs64_fnv1, 0);
1186   }
1187   #[inline]
add_testhashu64_fnv1(&mut self, testhashu64_fnv1: u64)1188   pub fn add_testhashu64_fnv1(&mut self, testhashu64_fnv1: u64) {
1189     self.fbb_.push_slot::<u64>(Monster::VT_TESTHASHU64_FNV1, testhashu64_fnv1, 0);
1190   }
1191   #[inline]
add_testhashs32_fnv1a(&mut self, testhashs32_fnv1a: i32)1192   pub fn add_testhashs32_fnv1a(&mut self, testhashs32_fnv1a: i32) {
1193     self.fbb_.push_slot::<i32>(Monster::VT_TESTHASHS32_FNV1A, testhashs32_fnv1a, 0);
1194   }
1195   #[inline]
add_testhashu32_fnv1a(&mut self, testhashu32_fnv1a: u32)1196   pub fn add_testhashu32_fnv1a(&mut self, testhashu32_fnv1a: u32) {
1197     self.fbb_.push_slot::<u32>(Monster::VT_TESTHASHU32_FNV1A, testhashu32_fnv1a, 0);
1198   }
1199   #[inline]
add_testhashs64_fnv1a(&mut self, testhashs64_fnv1a: i64)1200   pub fn add_testhashs64_fnv1a(&mut self, testhashs64_fnv1a: i64) {
1201     self.fbb_.push_slot::<i64>(Monster::VT_TESTHASHS64_FNV1A, testhashs64_fnv1a, 0);
1202   }
1203   #[inline]
add_testhashu64_fnv1a(&mut self, testhashu64_fnv1a: u64)1204   pub fn add_testhashu64_fnv1a(&mut self, testhashu64_fnv1a: u64) {
1205     self.fbb_.push_slot::<u64>(Monster::VT_TESTHASHU64_FNV1A, testhashu64_fnv1a, 0);
1206   }
1207   #[inline]
add_testarrayofbools(&mut self, testarrayofbools: flatbuffers::WIPOffset<flatbuffers::Vector<'b , bool>>)1208   pub fn add_testarrayofbools(&mut self, testarrayofbools: flatbuffers::WIPOffset<flatbuffers::Vector<'b , bool>>) {
1209     self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Monster::VT_TESTARRAYOFBOOLS, testarrayofbools);
1210   }
1211   #[inline]
add_testf(&mut self, testf: f32)1212   pub fn add_testf(&mut self, testf: f32) {
1213     self.fbb_.push_slot::<f32>(Monster::VT_TESTF, testf, 3.14159);
1214   }
1215   #[inline]
add_testf2(&mut self, testf2: f32)1216   pub fn add_testf2(&mut self, testf2: f32) {
1217     self.fbb_.push_slot::<f32>(Monster::VT_TESTF2, testf2, 3.0);
1218   }
1219   #[inline]
add_testf3(&mut self, testf3: f32)1220   pub fn add_testf3(&mut self, testf3: f32) {
1221     self.fbb_.push_slot::<f32>(Monster::VT_TESTF3, testf3, 0.0);
1222   }
1223   #[inline]
add_testarrayofstring2(&mut self, testarrayofstring2: flatbuffers::WIPOffset<flatbuffers::Vector<'b , flatbuffers::ForwardsUOffset<&'b str>>>)1224   pub fn add_testarrayofstring2(&mut self, testarrayofstring2: flatbuffers::WIPOffset<flatbuffers::Vector<'b , flatbuffers::ForwardsUOffset<&'b  str>>>) {
1225     self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Monster::VT_TESTARRAYOFSTRING2, testarrayofstring2);
1226   }
1227   #[inline]
add_testarrayofsortedstruct(&mut self, testarrayofsortedstruct: flatbuffers::WIPOffset<flatbuffers::Vector<'b , Ability>>)1228   pub fn add_testarrayofsortedstruct(&mut self, testarrayofsortedstruct: flatbuffers::WIPOffset<flatbuffers::Vector<'b , Ability>>) {
1229     self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Monster::VT_TESTARRAYOFSORTEDSTRUCT, testarrayofsortedstruct);
1230   }
1231   #[inline]
add_flex(&mut self, flex: flatbuffers::WIPOffset<flatbuffers::Vector<'b , u8>>)1232   pub fn add_flex(&mut self, flex: flatbuffers::WIPOffset<flatbuffers::Vector<'b , u8>>) {
1233     self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Monster::VT_FLEX, flex);
1234   }
1235   #[inline]
add_test5(&mut self, test5: flatbuffers::WIPOffset<flatbuffers::Vector<'b , Test>>)1236   pub fn add_test5(&mut self, test5: flatbuffers::WIPOffset<flatbuffers::Vector<'b , Test>>) {
1237     self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Monster::VT_TEST5, test5);
1238   }
1239   #[inline]
add_vector_of_longs(&mut self, vector_of_longs: flatbuffers::WIPOffset<flatbuffers::Vector<'b , i64>>)1240   pub fn add_vector_of_longs(&mut self, vector_of_longs: flatbuffers::WIPOffset<flatbuffers::Vector<'b , i64>>) {
1241     self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Monster::VT_VECTOR_OF_LONGS, vector_of_longs);
1242   }
1243   #[inline]
add_vector_of_doubles(&mut self, vector_of_doubles: flatbuffers::WIPOffset<flatbuffers::Vector<'b , f64>>)1244   pub fn add_vector_of_doubles(&mut self, vector_of_doubles: flatbuffers::WIPOffset<flatbuffers::Vector<'b , f64>>) {
1245     self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Monster::VT_VECTOR_OF_DOUBLES, vector_of_doubles);
1246   }
1247   #[inline]
add_parent_namespace_test(&mut self, parent_namespace_test: flatbuffers::WIPOffset<super::InParentNamespace<'b >>)1248   pub fn add_parent_namespace_test(&mut self, parent_namespace_test: flatbuffers::WIPOffset<super::InParentNamespace<'b >>) {
1249     self.fbb_.push_slot_always::<flatbuffers::WIPOffset<super::InParentNamespace>>(Monster::VT_PARENT_NAMESPACE_TEST, parent_namespace_test);
1250   }
1251   #[inline]
add_vector_of_referrables(&mut self, vector_of_referrables: flatbuffers::WIPOffset<flatbuffers::Vector<'b , flatbuffers::ForwardsUOffset<Referrable<'b >>>>)1252   pub fn add_vector_of_referrables(&mut self, vector_of_referrables: flatbuffers::WIPOffset<flatbuffers::Vector<'b , flatbuffers::ForwardsUOffset<Referrable<'b >>>>) {
1253     self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Monster::VT_VECTOR_OF_REFERRABLES, vector_of_referrables);
1254   }
1255   #[inline]
add_single_weak_reference(&mut self, single_weak_reference: u64)1256   pub fn add_single_weak_reference(&mut self, single_weak_reference: u64) {
1257     self.fbb_.push_slot::<u64>(Monster::VT_SINGLE_WEAK_REFERENCE, single_weak_reference, 0);
1258   }
1259   #[inline]
add_vector_of_weak_references(&mut self, vector_of_weak_references: flatbuffers::WIPOffset<flatbuffers::Vector<'b , u64>>)1260   pub fn add_vector_of_weak_references(&mut self, vector_of_weak_references: flatbuffers::WIPOffset<flatbuffers::Vector<'b , u64>>) {
1261     self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Monster::VT_VECTOR_OF_WEAK_REFERENCES, vector_of_weak_references);
1262   }
1263   #[inline]
add_vector_of_strong_referrables(&mut self, vector_of_strong_referrables: flatbuffers::WIPOffset<flatbuffers::Vector<'b , flatbuffers::ForwardsUOffset<Referrable<'b >>>>)1264   pub fn add_vector_of_strong_referrables(&mut self, vector_of_strong_referrables: flatbuffers::WIPOffset<flatbuffers::Vector<'b , flatbuffers::ForwardsUOffset<Referrable<'b >>>>) {
1265     self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Monster::VT_VECTOR_OF_STRONG_REFERRABLES, vector_of_strong_referrables);
1266   }
1267   #[inline]
add_co_owning_reference(&mut self, co_owning_reference: u64)1268   pub fn add_co_owning_reference(&mut self, co_owning_reference: u64) {
1269     self.fbb_.push_slot::<u64>(Monster::VT_CO_OWNING_REFERENCE, co_owning_reference, 0);
1270   }
1271   #[inline]
add_vector_of_co_owning_references(&mut self, vector_of_co_owning_references: flatbuffers::WIPOffset<flatbuffers::Vector<'b , u64>>)1272   pub fn add_vector_of_co_owning_references(&mut self, vector_of_co_owning_references: flatbuffers::WIPOffset<flatbuffers::Vector<'b , u64>>) {
1273     self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Monster::VT_VECTOR_OF_CO_OWNING_REFERENCES, vector_of_co_owning_references);
1274   }
1275   #[inline]
add_non_owning_reference(&mut self, non_owning_reference: u64)1276   pub fn add_non_owning_reference(&mut self, non_owning_reference: u64) {
1277     self.fbb_.push_slot::<u64>(Monster::VT_NON_OWNING_REFERENCE, non_owning_reference, 0);
1278   }
1279   #[inline]
add_vector_of_non_owning_references(&mut self, vector_of_non_owning_references: flatbuffers::WIPOffset<flatbuffers::Vector<'b , u64>>)1280   pub fn add_vector_of_non_owning_references(&mut self, vector_of_non_owning_references: flatbuffers::WIPOffset<flatbuffers::Vector<'b , u64>>) {
1281     self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Monster::VT_VECTOR_OF_NON_OWNING_REFERENCES, vector_of_non_owning_references);
1282   }
1283   #[inline]
add_any_unique_type(&mut self, any_unique_type: AnyUniqueAliases)1284   pub fn add_any_unique_type(&mut self, any_unique_type: AnyUniqueAliases) {
1285     self.fbb_.push_slot::<AnyUniqueAliases>(Monster::VT_ANY_UNIQUE_TYPE, any_unique_type, AnyUniqueAliases::NONE);
1286   }
1287   #[inline]
add_any_unique(&mut self, any_unique: flatbuffers::WIPOffset<flatbuffers::UnionWIPOffset>)1288   pub fn add_any_unique(&mut self, any_unique: flatbuffers::WIPOffset<flatbuffers::UnionWIPOffset>) {
1289     self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Monster::VT_ANY_UNIQUE, any_unique);
1290   }
1291   #[inline]
add_any_ambiguous_type(&mut self, any_ambiguous_type: AnyAmbiguousAliases)1292   pub fn add_any_ambiguous_type(&mut self, any_ambiguous_type: AnyAmbiguousAliases) {
1293     self.fbb_.push_slot::<AnyAmbiguousAliases>(Monster::VT_ANY_AMBIGUOUS_TYPE, any_ambiguous_type, AnyAmbiguousAliases::NONE);
1294   }
1295   #[inline]
add_any_ambiguous(&mut self, any_ambiguous: flatbuffers::WIPOffset<flatbuffers::UnionWIPOffset>)1296   pub fn add_any_ambiguous(&mut self, any_ambiguous: flatbuffers::WIPOffset<flatbuffers::UnionWIPOffset>) {
1297     self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Monster::VT_ANY_AMBIGUOUS, any_ambiguous);
1298   }
1299   #[inline]
add_vector_of_enums(&mut self, vector_of_enums: flatbuffers::WIPOffset<flatbuffers::Vector<'b , Color>>)1300   pub fn add_vector_of_enums(&mut self, vector_of_enums: flatbuffers::WIPOffset<flatbuffers::Vector<'b , Color>>) {
1301     self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Monster::VT_VECTOR_OF_ENUMS, vector_of_enums);
1302   }
1303   #[inline]
add_signed_enum(&mut self, signed_enum: Race)1304   pub fn add_signed_enum(&mut self, signed_enum: Race) {
1305     self.fbb_.push_slot::<Race>(Monster::VT_SIGNED_ENUM, signed_enum, Race::None);
1306   }
1307   #[inline]
add_testrequirednestedflatbuffer(&mut self, testrequirednestedflatbuffer: flatbuffers::WIPOffset<flatbuffers::Vector<'b , u8>>)1308   pub fn add_testrequirednestedflatbuffer(&mut self, testrequirednestedflatbuffer: flatbuffers::WIPOffset<flatbuffers::Vector<'b , u8>>) {
1309     self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Monster::VT_TESTREQUIREDNESTEDFLATBUFFER, testrequirednestedflatbuffer);
1310   }
1311   #[inline]
add_scalar_key_sorted_tables(&mut self, scalar_key_sorted_tables: flatbuffers::WIPOffset<flatbuffers::Vector<'b , flatbuffers::ForwardsUOffset<Stat<'b >>>>)1312   pub fn add_scalar_key_sorted_tables(&mut self, scalar_key_sorted_tables: flatbuffers::WIPOffset<flatbuffers::Vector<'b , flatbuffers::ForwardsUOffset<Stat<'b >>>>) {
1313     self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Monster::VT_SCALAR_KEY_SORTED_TABLES, scalar_key_sorted_tables);
1314   }
1315   #[inline]
add_native_inline(&mut self, native_inline: &Test)1316   pub fn add_native_inline(&mut self, native_inline: &Test) {
1317     self.fbb_.push_slot_always::<&Test>(Monster::VT_NATIVE_INLINE, native_inline);
1318   }
1319   #[inline]
add_long_enum_non_enum_default(&mut self, long_enum_non_enum_default: LongEnum)1320   pub fn add_long_enum_non_enum_default(&mut self, long_enum_non_enum_default: LongEnum) {
1321     self.fbb_.push_slot::<LongEnum>(Monster::VT_LONG_ENUM_NON_ENUM_DEFAULT, long_enum_non_enum_default, Default::default());
1322   }
1323   #[inline]
add_long_enum_normal_default(&mut self, long_enum_normal_default: LongEnum)1324   pub fn add_long_enum_normal_default(&mut self, long_enum_normal_default: LongEnum) {
1325     self.fbb_.push_slot::<LongEnum>(Monster::VT_LONG_ENUM_NORMAL_DEFAULT, long_enum_normal_default, LongEnum::LongOne);
1326   }
1327   #[inline]
new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> MonsterBuilder<'a, 'b>1328   pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> MonsterBuilder<'a, 'b> {
1329     let start = _fbb.start_table();
1330     MonsterBuilder {
1331       fbb_: _fbb,
1332       start_: start,
1333     }
1334   }
1335   #[inline]
finish(self) -> flatbuffers::WIPOffset<Monster<'a>>1336   pub fn finish(self) -> flatbuffers::WIPOffset<Monster<'a>> {
1337     let o = self.fbb_.end_table(self.start_);
1338     self.fbb_.required(o, Monster::VT_NAME,"name");
1339     flatbuffers::WIPOffset::new(o.value())
1340   }
1341 }
1342 
1343 impl core::fmt::Debug for Monster<'_> {
fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result1344   fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
1345     let mut ds = f.debug_struct("Monster");
1346       ds.field("pos", &self.pos());
1347       ds.field("mana", &self.mana());
1348       ds.field("hp", &self.hp());
1349       ds.field("name", &self.name());
1350       ds.field("inventory", &self.inventory());
1351       ds.field("color", &self.color());
1352       ds.field("test_type", &self.test_type());
1353       match self.test_type() {
1354         Any::Monster => {
1355           if let Some(x) = self.test_as_monster() {
1356             ds.field("test", &x)
1357           } else {
1358             ds.field("test", &"InvalidFlatbuffer: Union discriminant does not match value.")
1359           }
1360         },
1361         Any::TestSimpleTableWithEnum => {
1362           if let Some(x) = self.test_as_test_simple_table_with_enum() {
1363             ds.field("test", &x)
1364           } else {
1365             ds.field("test", &"InvalidFlatbuffer: Union discriminant does not match value.")
1366           }
1367         },
1368         Any::MyGame_Example2_Monster => {
1369           if let Some(x) = self.test_as_my_game_example_2_monster() {
1370             ds.field("test", &x)
1371           } else {
1372             ds.field("test", &"InvalidFlatbuffer: Union discriminant does not match value.")
1373           }
1374         },
1375         _ => {
1376           let x: Option<()> = None;
1377           ds.field("test", &x)
1378         },
1379       };
1380       ds.field("test4", &self.test4());
1381       ds.field("testarrayofstring", &self.testarrayofstring());
1382       ds.field("testarrayoftables", &self.testarrayoftables());
1383       ds.field("enemy", &self.enemy());
1384       ds.field("testnestedflatbuffer", &self.testnestedflatbuffer());
1385       ds.field("testempty", &self.testempty());
1386       ds.field("testbool", &self.testbool());
1387       ds.field("testhashs32_fnv1", &self.testhashs32_fnv1());
1388       ds.field("testhashu32_fnv1", &self.testhashu32_fnv1());
1389       ds.field("testhashs64_fnv1", &self.testhashs64_fnv1());
1390       ds.field("testhashu64_fnv1", &self.testhashu64_fnv1());
1391       ds.field("testhashs32_fnv1a", &self.testhashs32_fnv1a());
1392       ds.field("testhashu32_fnv1a", &self.testhashu32_fnv1a());
1393       ds.field("testhashs64_fnv1a", &self.testhashs64_fnv1a());
1394       ds.field("testhashu64_fnv1a", &self.testhashu64_fnv1a());
1395       ds.field("testarrayofbools", &self.testarrayofbools());
1396       ds.field("testf", &self.testf());
1397       ds.field("testf2", &self.testf2());
1398       ds.field("testf3", &self.testf3());
1399       ds.field("testarrayofstring2", &self.testarrayofstring2());
1400       ds.field("testarrayofsortedstruct", &self.testarrayofsortedstruct());
1401       ds.field("flex", &self.flex());
1402       ds.field("test5", &self.test5());
1403       ds.field("vector_of_longs", &self.vector_of_longs());
1404       ds.field("vector_of_doubles", &self.vector_of_doubles());
1405       ds.field("parent_namespace_test", &self.parent_namespace_test());
1406       ds.field("vector_of_referrables", &self.vector_of_referrables());
1407       ds.field("single_weak_reference", &self.single_weak_reference());
1408       ds.field("vector_of_weak_references", &self.vector_of_weak_references());
1409       ds.field("vector_of_strong_referrables", &self.vector_of_strong_referrables());
1410       ds.field("co_owning_reference", &self.co_owning_reference());
1411       ds.field("vector_of_co_owning_references", &self.vector_of_co_owning_references());
1412       ds.field("non_owning_reference", &self.non_owning_reference());
1413       ds.field("vector_of_non_owning_references", &self.vector_of_non_owning_references());
1414       ds.field("any_unique_type", &self.any_unique_type());
1415       match self.any_unique_type() {
1416         AnyUniqueAliases::M => {
1417           if let Some(x) = self.any_unique_as_m() {
1418             ds.field("any_unique", &x)
1419           } else {
1420             ds.field("any_unique", &"InvalidFlatbuffer: Union discriminant does not match value.")
1421           }
1422         },
1423         AnyUniqueAliases::TS => {
1424           if let Some(x) = self.any_unique_as_ts() {
1425             ds.field("any_unique", &x)
1426           } else {
1427             ds.field("any_unique", &"InvalidFlatbuffer: Union discriminant does not match value.")
1428           }
1429         },
1430         AnyUniqueAliases::M2 => {
1431           if let Some(x) = self.any_unique_as_m2() {
1432             ds.field("any_unique", &x)
1433           } else {
1434             ds.field("any_unique", &"InvalidFlatbuffer: Union discriminant does not match value.")
1435           }
1436         },
1437         _ => {
1438           let x: Option<()> = None;
1439           ds.field("any_unique", &x)
1440         },
1441       };
1442       ds.field("any_ambiguous_type", &self.any_ambiguous_type());
1443       match self.any_ambiguous_type() {
1444         AnyAmbiguousAliases::M1 => {
1445           if let Some(x) = self.any_ambiguous_as_m1() {
1446             ds.field("any_ambiguous", &x)
1447           } else {
1448             ds.field("any_ambiguous", &"InvalidFlatbuffer: Union discriminant does not match value.")
1449           }
1450         },
1451         AnyAmbiguousAliases::M2 => {
1452           if let Some(x) = self.any_ambiguous_as_m2() {
1453             ds.field("any_ambiguous", &x)
1454           } else {
1455             ds.field("any_ambiguous", &"InvalidFlatbuffer: Union discriminant does not match value.")
1456           }
1457         },
1458         AnyAmbiguousAliases::M3 => {
1459           if let Some(x) = self.any_ambiguous_as_m3() {
1460             ds.field("any_ambiguous", &x)
1461           } else {
1462             ds.field("any_ambiguous", &"InvalidFlatbuffer: Union discriminant does not match value.")
1463           }
1464         },
1465         _ => {
1466           let x: Option<()> = None;
1467           ds.field("any_ambiguous", &x)
1468         },
1469       };
1470       ds.field("vector_of_enums", &self.vector_of_enums());
1471       ds.field("signed_enum", &self.signed_enum());
1472       ds.field("testrequirednestedflatbuffer", &self.testrequirednestedflatbuffer());
1473       ds.field("scalar_key_sorted_tables", &self.scalar_key_sorted_tables());
1474       ds.field("native_inline", &self.native_inline());
1475       ds.field("long_enum_non_enum_default", &self.long_enum_non_enum_default());
1476       ds.field("long_enum_normal_default", &self.long_enum_normal_default());
1477       ds.finish()
1478   }
1479 }
1480 #[non_exhaustive]
1481 #[derive(Debug, Clone, PartialEq)]
1482 pub struct MonsterT {
1483   pub pos: Option<Vec3T>,
1484   pub mana: i16,
1485   pub hp: i16,
1486   pub name: String,
1487   pub inventory: Option<Vec<u8>>,
1488   pub color: Color,
1489   pub test: AnyT,
1490   pub test4: Option<Vec<TestT>>,
1491   pub testarrayofstring: Option<Vec<String>>,
1492   pub testarrayoftables: Option<Vec<MonsterT>>,
1493   pub enemy: Option<Box<MonsterT>>,
1494   pub testnestedflatbuffer: Option<Vec<u8>>,
1495   pub testempty: Option<Box<StatT>>,
1496   pub testbool: bool,
1497   pub testhashs32_fnv1: i32,
1498   pub testhashu32_fnv1: u32,
1499   pub testhashs64_fnv1: i64,
1500   pub testhashu64_fnv1: u64,
1501   pub testhashs32_fnv1a: i32,
1502   pub testhashu32_fnv1a: u32,
1503   pub testhashs64_fnv1a: i64,
1504   pub testhashu64_fnv1a: u64,
1505   pub testarrayofbools: Option<Vec<bool>>,
1506   pub testf: f32,
1507   pub testf2: f32,
1508   pub testf3: f32,
1509   pub testarrayofstring2: Option<Vec<String>>,
1510   pub testarrayofsortedstruct: Option<Vec<AbilityT>>,
1511   pub flex: Option<Vec<u8>>,
1512   pub test5: Option<Vec<TestT>>,
1513   pub vector_of_longs: Option<Vec<i64>>,
1514   pub vector_of_doubles: Option<Vec<f64>>,
1515   pub parent_namespace_test: Option<Box<super::InParentNamespaceT>>,
1516   pub vector_of_referrables: Option<Vec<ReferrableT>>,
1517   pub single_weak_reference: u64,
1518   pub vector_of_weak_references: Option<Vec<u64>>,
1519   pub vector_of_strong_referrables: Option<Vec<ReferrableT>>,
1520   pub co_owning_reference: u64,
1521   pub vector_of_co_owning_references: Option<Vec<u64>>,
1522   pub non_owning_reference: u64,
1523   pub vector_of_non_owning_references: Option<Vec<u64>>,
1524   pub any_unique: AnyUniqueAliasesT,
1525   pub any_ambiguous: AnyAmbiguousAliasesT,
1526   pub vector_of_enums: Option<Vec<Color>>,
1527   pub signed_enum: Race,
1528   pub testrequirednestedflatbuffer: Option<Vec<u8>>,
1529   pub scalar_key_sorted_tables: Option<Vec<StatT>>,
1530   pub native_inline: Option<TestT>,
1531   pub long_enum_non_enum_default: LongEnum,
1532   pub long_enum_normal_default: LongEnum,
1533 }
1534 impl Default for MonsterT {
default() -> Self1535   fn default() -> Self {
1536     Self {
1537       pos: None,
1538       mana: 150,
1539       hp: 100,
1540       name: "".to_string(),
1541       inventory: None,
1542       color: Color::Blue,
1543       test: AnyT::NONE,
1544       test4: None,
1545       testarrayofstring: None,
1546       testarrayoftables: None,
1547       enemy: None,
1548       testnestedflatbuffer: None,
1549       testempty: None,
1550       testbool: false,
1551       testhashs32_fnv1: 0,
1552       testhashu32_fnv1: 0,
1553       testhashs64_fnv1: 0,
1554       testhashu64_fnv1: 0,
1555       testhashs32_fnv1a: 0,
1556       testhashu32_fnv1a: 0,
1557       testhashs64_fnv1a: 0,
1558       testhashu64_fnv1a: 0,
1559       testarrayofbools: None,
1560       testf: 3.14159,
1561       testf2: 3.0,
1562       testf3: 0.0,
1563       testarrayofstring2: None,
1564       testarrayofsortedstruct: None,
1565       flex: None,
1566       test5: None,
1567       vector_of_longs: None,
1568       vector_of_doubles: None,
1569       parent_namespace_test: None,
1570       vector_of_referrables: None,
1571       single_weak_reference: 0,
1572       vector_of_weak_references: None,
1573       vector_of_strong_referrables: None,
1574       co_owning_reference: 0,
1575       vector_of_co_owning_references: None,
1576       non_owning_reference: 0,
1577       vector_of_non_owning_references: None,
1578       any_unique: AnyUniqueAliasesT::NONE,
1579       any_ambiguous: AnyAmbiguousAliasesT::NONE,
1580       vector_of_enums: None,
1581       signed_enum: Race::None,
1582       testrequirednestedflatbuffer: None,
1583       scalar_key_sorted_tables: None,
1584       native_inline: None,
1585       long_enum_non_enum_default: Default::default(),
1586       long_enum_normal_default: LongEnum::LongOne,
1587     }
1588   }
1589 }
1590 impl MonsterT {
pack<'b>( &self, _fbb: &mut flatbuffers::FlatBufferBuilder<'b> ) -> flatbuffers::WIPOffset<Monster<'b>>1591   pub fn pack<'b>(
1592     &self,
1593     _fbb: &mut flatbuffers::FlatBufferBuilder<'b>
1594   ) -> flatbuffers::WIPOffset<Monster<'b>> {
1595     let pos_tmp = self.pos.as_ref().map(|x| x.pack());
1596     let pos = pos_tmp.as_ref();
1597     let mana = self.mana;
1598     let hp = self.hp;
1599     let name = Some({
1600       let x = &self.name;
1601       _fbb.create_string(x)
1602     });
1603     let inventory = self.inventory.as_ref().map(|x|{
1604       _fbb.create_vector(x)
1605     });
1606     let color = self.color;
1607     let test_type = self.test.any_type();
1608     let test = self.test.pack(_fbb);
1609     let test4 = self.test4.as_ref().map(|x|{
1610       let w: Vec<_> = x.iter().map(|t| t.pack()).collect();_fbb.create_vector(&w)
1611     });
1612     let testarrayofstring = self.testarrayofstring.as_ref().map(|x|{
1613       let w: Vec<_> = x.iter().map(|s| s.as_ref()).collect();_fbb.create_vector_of_strings(&w)
1614     });
1615     let testarrayoftables = self.testarrayoftables.as_ref().map(|x|{
1616       let w: Vec<_> = x.iter().map(|t| t.pack(_fbb)).collect();_fbb.create_vector(&w)
1617     });
1618     let enemy = self.enemy.as_ref().map(|x|{
1619       x.pack(_fbb)
1620     });
1621     let testnestedflatbuffer = self.testnestedflatbuffer.as_ref().map(|x|{
1622       _fbb.create_vector(x)
1623     });
1624     let testempty = self.testempty.as_ref().map(|x|{
1625       x.pack(_fbb)
1626     });
1627     let testbool = self.testbool;
1628     let testhashs32_fnv1 = self.testhashs32_fnv1;
1629     let testhashu32_fnv1 = self.testhashu32_fnv1;
1630     let testhashs64_fnv1 = self.testhashs64_fnv1;
1631     let testhashu64_fnv1 = self.testhashu64_fnv1;
1632     let testhashs32_fnv1a = self.testhashs32_fnv1a;
1633     let testhashu32_fnv1a = self.testhashu32_fnv1a;
1634     let testhashs64_fnv1a = self.testhashs64_fnv1a;
1635     let testhashu64_fnv1a = self.testhashu64_fnv1a;
1636     let testarrayofbools = self.testarrayofbools.as_ref().map(|x|{
1637       _fbb.create_vector(x)
1638     });
1639     let testf = self.testf;
1640     let testf2 = self.testf2;
1641     let testf3 = self.testf3;
1642     let testarrayofstring2 = self.testarrayofstring2.as_ref().map(|x|{
1643       let w: Vec<_> = x.iter().map(|s| s.as_ref()).collect();_fbb.create_vector_of_strings(&w)
1644     });
1645     let testarrayofsortedstruct = self.testarrayofsortedstruct.as_ref().map(|x|{
1646       let w: Vec<_> = x.iter().map(|t| t.pack()).collect();_fbb.create_vector(&w)
1647     });
1648     let flex = self.flex.as_ref().map(|x|{
1649       _fbb.create_vector(x)
1650     });
1651     let test5 = self.test5.as_ref().map(|x|{
1652       let w: Vec<_> = x.iter().map(|t| t.pack()).collect();_fbb.create_vector(&w)
1653     });
1654     let vector_of_longs = self.vector_of_longs.as_ref().map(|x|{
1655       _fbb.create_vector(x)
1656     });
1657     let vector_of_doubles = self.vector_of_doubles.as_ref().map(|x|{
1658       _fbb.create_vector(x)
1659     });
1660     let parent_namespace_test = self.parent_namespace_test.as_ref().map(|x|{
1661       x.pack(_fbb)
1662     });
1663     let vector_of_referrables = self.vector_of_referrables.as_ref().map(|x|{
1664       let w: Vec<_> = x.iter().map(|t| t.pack(_fbb)).collect();_fbb.create_vector(&w)
1665     });
1666     let single_weak_reference = self.single_weak_reference;
1667     let vector_of_weak_references = self.vector_of_weak_references.as_ref().map(|x|{
1668       _fbb.create_vector(x)
1669     });
1670     let vector_of_strong_referrables = self.vector_of_strong_referrables.as_ref().map(|x|{
1671       let w: Vec<_> = x.iter().map(|t| t.pack(_fbb)).collect();_fbb.create_vector(&w)
1672     });
1673     let co_owning_reference = self.co_owning_reference;
1674     let vector_of_co_owning_references = self.vector_of_co_owning_references.as_ref().map(|x|{
1675       _fbb.create_vector(x)
1676     });
1677     let non_owning_reference = self.non_owning_reference;
1678     let vector_of_non_owning_references = self.vector_of_non_owning_references.as_ref().map(|x|{
1679       _fbb.create_vector(x)
1680     });
1681     let any_unique_type = self.any_unique.any_unique_aliases_type();
1682     let any_unique = self.any_unique.pack(_fbb);
1683     let any_ambiguous_type = self.any_ambiguous.any_ambiguous_aliases_type();
1684     let any_ambiguous = self.any_ambiguous.pack(_fbb);
1685     let vector_of_enums = self.vector_of_enums.as_ref().map(|x|{
1686       _fbb.create_vector(x)
1687     });
1688     let signed_enum = self.signed_enum;
1689     let testrequirednestedflatbuffer = self.testrequirednestedflatbuffer.as_ref().map(|x|{
1690       _fbb.create_vector(x)
1691     });
1692     let scalar_key_sorted_tables = self.scalar_key_sorted_tables.as_ref().map(|x|{
1693       let w: Vec<_> = x.iter().map(|t| t.pack(_fbb)).collect();_fbb.create_vector(&w)
1694     });
1695     let native_inline_tmp = self.native_inline.as_ref().map(|x| x.pack());
1696     let native_inline = native_inline_tmp.as_ref();
1697     let long_enum_non_enum_default = self.long_enum_non_enum_default;
1698     let long_enum_normal_default = self.long_enum_normal_default;
1699     Monster::create(_fbb, &MonsterArgs{
1700       pos,
1701       mana,
1702       hp,
1703       name,
1704       inventory,
1705       color,
1706       test_type,
1707       test,
1708       test4,
1709       testarrayofstring,
1710       testarrayoftables,
1711       enemy,
1712       testnestedflatbuffer,
1713       testempty,
1714       testbool,
1715       testhashs32_fnv1,
1716       testhashu32_fnv1,
1717       testhashs64_fnv1,
1718       testhashu64_fnv1,
1719       testhashs32_fnv1a,
1720       testhashu32_fnv1a,
1721       testhashs64_fnv1a,
1722       testhashu64_fnv1a,
1723       testarrayofbools,
1724       testf,
1725       testf2,
1726       testf3,
1727       testarrayofstring2,
1728       testarrayofsortedstruct,
1729       flex,
1730       test5,
1731       vector_of_longs,
1732       vector_of_doubles,
1733       parent_namespace_test,
1734       vector_of_referrables,
1735       single_weak_reference,
1736       vector_of_weak_references,
1737       vector_of_strong_referrables,
1738       co_owning_reference,
1739       vector_of_co_owning_references,
1740       non_owning_reference,
1741       vector_of_non_owning_references,
1742       any_unique_type,
1743       any_unique,
1744       any_ambiguous_type,
1745       any_ambiguous,
1746       vector_of_enums,
1747       signed_enum,
1748       testrequirednestedflatbuffer,
1749       scalar_key_sorted_tables,
1750       native_inline,
1751       long_enum_non_enum_default,
1752       long_enum_normal_default,
1753     })
1754   }
1755 }
1756 #[inline]
1757 #[deprecated(since="2.0.0", note="Deprecated in favor of `root_as...` methods.")]
get_root_as_monster<'a>(buf: &'a [u8]) -> Monster<'a>1758 pub fn get_root_as_monster<'a>(buf: &'a [u8]) -> Monster<'a> {
1759   unsafe { flatbuffers::root_unchecked::<Monster<'a>>(buf) }
1760 }
1761 
1762 #[inline]
1763 #[deprecated(since="2.0.0", note="Deprecated in favor of `root_as...` methods.")]
get_size_prefixed_root_as_monster<'a>(buf: &'a [u8]) -> Monster<'a>1764 pub fn get_size_prefixed_root_as_monster<'a>(buf: &'a [u8]) -> Monster<'a> {
1765   unsafe { flatbuffers::size_prefixed_root_unchecked::<Monster<'a>>(buf) }
1766 }
1767 
1768 #[inline]
1769 /// Verifies that a buffer of bytes contains a `Monster`
1770 /// and returns it.
1771 /// Note that verification is still experimental and may not
1772 /// catch every error, or be maximally performant. For the
1773 /// previous, unchecked, behavior use
1774 /// `root_as_monster_unchecked`.
root_as_monster(buf: &[u8]) -> Result<Monster, flatbuffers::InvalidFlatbuffer>1775 pub fn root_as_monster(buf: &[u8]) -> Result<Monster, flatbuffers::InvalidFlatbuffer> {
1776   flatbuffers::root::<Monster>(buf)
1777 }
1778 #[inline]
1779 /// Verifies that a buffer of bytes contains a size prefixed
1780 /// `Monster` and returns it.
1781 /// Note that verification is still experimental and may not
1782 /// catch every error, or be maximally performant. For the
1783 /// previous, unchecked, behavior use
1784 /// `size_prefixed_root_as_monster_unchecked`.
size_prefixed_root_as_monster(buf: &[u8]) -> Result<Monster, flatbuffers::InvalidFlatbuffer>1785 pub fn size_prefixed_root_as_monster(buf: &[u8]) -> Result<Monster, flatbuffers::InvalidFlatbuffer> {
1786   flatbuffers::size_prefixed_root::<Monster>(buf)
1787 }
1788 #[inline]
1789 /// Verifies, with the given options, that a buffer of bytes
1790 /// contains a `Monster` and returns it.
1791 /// Note that verification is still experimental and may not
1792 /// catch every error, or be maximally performant. For the
1793 /// previous, unchecked, behavior use
1794 /// `root_as_monster_unchecked`.
root_as_monster_with_opts<'b, 'o>( opts: &'o flatbuffers::VerifierOptions, buf: &'b [u8], ) -> Result<Monster<'b>, flatbuffers::InvalidFlatbuffer>1795 pub fn root_as_monster_with_opts<'b, 'o>(
1796   opts: &'o flatbuffers::VerifierOptions,
1797   buf: &'b [u8],
1798 ) -> Result<Monster<'b>, flatbuffers::InvalidFlatbuffer> {
1799   flatbuffers::root_with_opts::<Monster<'b>>(opts, buf)
1800 }
1801 #[inline]
1802 /// Verifies, with the given verifier options, that a buffer of
1803 /// bytes contains a size prefixed `Monster` and returns
1804 /// it. Note that verification is still experimental and may not
1805 /// catch every error, or be maximally performant. For the
1806 /// previous, unchecked, behavior use
1807 /// `root_as_monster_unchecked`.
size_prefixed_root_as_monster_with_opts<'b, 'o>( opts: &'o flatbuffers::VerifierOptions, buf: &'b [u8], ) -> Result<Monster<'b>, flatbuffers::InvalidFlatbuffer>1808 pub fn size_prefixed_root_as_monster_with_opts<'b, 'o>(
1809   opts: &'o flatbuffers::VerifierOptions,
1810   buf: &'b [u8],
1811 ) -> Result<Monster<'b>, flatbuffers::InvalidFlatbuffer> {
1812   flatbuffers::size_prefixed_root_with_opts::<Monster<'b>>(opts, buf)
1813 }
1814 #[inline]
1815 /// Assumes, without verification, that a buffer of bytes contains a Monster and returns it.
1816 /// # Safety
1817 /// Callers must trust the given bytes do indeed contain a valid `Monster`.
root_as_monster_unchecked(buf: &[u8]) -> Monster1818 pub unsafe fn root_as_monster_unchecked(buf: &[u8]) -> Monster {
1819   flatbuffers::root_unchecked::<Monster>(buf)
1820 }
1821 #[inline]
1822 /// Assumes, without verification, that a buffer of bytes contains a size prefixed Monster and returns it.
1823 /// # Safety
1824 /// Callers must trust the given bytes do indeed contain a valid size prefixed `Monster`.
size_prefixed_root_as_monster_unchecked(buf: &[u8]) -> Monster1825 pub unsafe fn size_prefixed_root_as_monster_unchecked(buf: &[u8]) -> Monster {
1826   flatbuffers::size_prefixed_root_unchecked::<Monster>(buf)
1827 }
1828 pub const MONSTER_IDENTIFIER: &str = "MONS";
1829 
1830 #[inline]
monster_buffer_has_identifier(buf: &[u8]) -> bool1831 pub fn monster_buffer_has_identifier(buf: &[u8]) -> bool {
1832   flatbuffers::buffer_has_identifier(buf, MONSTER_IDENTIFIER, false)
1833 }
1834 
1835 #[inline]
monster_size_prefixed_buffer_has_identifier(buf: &[u8]) -> bool1836 pub fn monster_size_prefixed_buffer_has_identifier(buf: &[u8]) -> bool {
1837   flatbuffers::buffer_has_identifier(buf, MONSTER_IDENTIFIER, true)
1838 }
1839 
1840 pub const MONSTER_EXTENSION: &str = "mon";
1841 
1842 #[inline]
finish_monster_buffer<'a, 'b>( fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, root: flatbuffers::WIPOffset<Monster<'a>>)1843 pub fn finish_monster_buffer<'a, 'b>(
1844     fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>,
1845     root: flatbuffers::WIPOffset<Monster<'a>>) {
1846   fbb.finish(root, Some(MONSTER_IDENTIFIER));
1847 }
1848 
1849 #[inline]
finish_size_prefixed_monster_buffer<'a, 'b>(fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, root: flatbuffers::WIPOffset<Monster<'a>>)1850 pub fn finish_size_prefixed_monster_buffer<'a, 'b>(fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, root: flatbuffers::WIPOffset<Monster<'a>>) {
1851   fbb.finish_size_prefixed(root, Some(MONSTER_IDENTIFIER));
1852 }
1853