// automatically generated by the FlatBuffers compiler, do not modify use std::mem; use std::cmp::Ordering; extern crate flatbuffers; use self::flatbuffers::EndianScalar; #[allow(unused_imports, dead_code)] pub mod namespace_a { use std::mem; use std::cmp::Ordering; extern crate flatbuffers; use self::flatbuffers::EndianScalar; #[allow(unused_imports, dead_code)] pub mod namespace_b { use std::mem; use std::cmp::Ordering; extern crate flatbuffers; use self::flatbuffers::EndianScalar; #[deprecated(since = "2.0.0", note = "Use associated constants instead. This will no longer be generated in 2021.")] pub const ENUM_MIN_UNION_IN_NESTED_NS: u8 = 0; #[deprecated(since = "2.0.0", note = "Use associated constants instead. This will no longer be generated in 2021.")] pub const ENUM_MAX_UNION_IN_NESTED_NS: u8 = 1; #[deprecated(since = "2.0.0", note = "Use associated constants instead. This will no longer be generated in 2021.")] #[allow(non_camel_case_types)] pub const ENUM_VALUES_UNION_IN_NESTED_NS: [UnionInNestedNS; 2] = [ UnionInNestedNS::NONE, UnionInNestedNS::TableInNestedNS, ]; #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] #[repr(transparent)] pub struct UnionInNestedNS(pub u8); #[allow(non_upper_case_globals)] impl UnionInNestedNS { pub const NONE: Self = Self(0); pub const TableInNestedNS: Self = Self(1); pub const ENUM_MIN: u8 = 0; pub const ENUM_MAX: u8 = 1; pub const ENUM_VALUES: &'static [Self] = &[ Self::NONE, Self::TableInNestedNS, ]; /// Returns the variant's name or "" if unknown. pub fn variant_name(self) -> Option<&'static str> { match self { Self::NONE => Some("NONE"), Self::TableInNestedNS => Some("TableInNestedNS"), _ => None, } } } impl std::fmt::Debug for UnionInNestedNS { fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { if let Some(name) = self.variant_name() { f.write_str(name) } else { f.write_fmt(format_args!("", self.0)) } } } impl<'a> flatbuffers::Follow<'a> for UnionInNestedNS { type Inner = Self; #[inline] fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { let b = flatbuffers::read_scalar_at::(buf, loc); Self(b) } } impl flatbuffers::Push for UnionInNestedNS { type Output = UnionInNestedNS; #[inline] fn push(&self, dst: &mut [u8], _rest: &[u8]) { flatbuffers::emplace_scalar::(dst, self.0); } } impl flatbuffers::EndianScalar for UnionInNestedNS { #[inline] fn to_little_endian(self) -> Self { let b = u8::to_le(self.0); Self(b) } #[inline] #[allow(clippy::wrong_self_convention)] fn from_little_endian(self) -> Self { let b = u8::from_le(self.0); Self(b) } } impl<'a> flatbuffers::Verifiable for UnionInNestedNS { #[inline] fn run_verifier( v: &mut flatbuffers::Verifier, pos: usize ) -> Result<(), flatbuffers::InvalidFlatbuffer> { use self::flatbuffers::Verifiable; u8::run_verifier(v, pos) } } impl flatbuffers::SimpleToVerifyInSlice for UnionInNestedNS {} pub struct UnionInNestedNSUnionTableOffset {} #[non_exhaustive] #[derive(Debug, Clone, PartialEq)] pub enum UnionInNestedNST { NONE, TableInNestedNS(Box), } impl Default for UnionInNestedNST { fn default() -> Self { Self::NONE } } impl UnionInNestedNST { pub fn union_in_nested_ns_type(&self) -> UnionInNestedNS { match self { Self::NONE => UnionInNestedNS::NONE, Self::TableInNestedNS(_) => UnionInNestedNS::TableInNestedNS, } } pub fn pack(&self, fbb: &mut flatbuffers::FlatBufferBuilder) -> Option> { match self { Self::NONE => None, Self::TableInNestedNS(v) => Some(v.pack(fbb).as_union_value()), } } /// If the union variant matches, return the owned TableInNestedNST, setting the union to NONE. pub fn take_table_in_nested_ns(&mut self) -> Option> { if let Self::TableInNestedNS(_) = self { let v = std::mem::replace(self, Self::NONE); if let Self::TableInNestedNS(w) = v { Some(w) } else { unreachable!() } } else { None } } /// If the union variant matches, return a reference to the TableInNestedNST. pub fn as_table_in_nested_ns(&self) -> Option<&TableInNestedNST> { if let Self::TableInNestedNS(v) = self { Some(v.as_ref()) } else { None } } /// If the union variant matches, return a mutable reference to the TableInNestedNST. pub fn as_table_in_nested_ns_mut(&mut self) -> Option<&mut TableInNestedNST> { if let Self::TableInNestedNS(v) = self { Some(v.as_mut()) } else { None } } } #[deprecated(since = "2.0.0", note = "Use associated constants instead. This will no longer be generated in 2021.")] pub const ENUM_MIN_ENUM_IN_NESTED_NS: i8 = 0; #[deprecated(since = "2.0.0", note = "Use associated constants instead. This will no longer be generated in 2021.")] pub const ENUM_MAX_ENUM_IN_NESTED_NS: i8 = 2; #[deprecated(since = "2.0.0", note = "Use associated constants instead. This will no longer be generated in 2021.")] #[allow(non_camel_case_types)] pub const ENUM_VALUES_ENUM_IN_NESTED_NS: [EnumInNestedNS; 3] = [ EnumInNestedNS::A, EnumInNestedNS::B, EnumInNestedNS::C, ]; #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] #[repr(transparent)] pub struct EnumInNestedNS(pub i8); #[allow(non_upper_case_globals)] impl EnumInNestedNS { pub const A: Self = Self(0); pub const B: Self = Self(1); pub const C: Self = Self(2); pub const ENUM_MIN: i8 = 0; pub const ENUM_MAX: i8 = 2; pub const ENUM_VALUES: &'static [Self] = &[ Self::A, Self::B, Self::C, ]; /// Returns the variant's name or "" if unknown. pub fn variant_name(self) -> Option<&'static str> { match self { Self::A => Some("A"), Self::B => Some("B"), Self::C => Some("C"), _ => None, } } } impl std::fmt::Debug for EnumInNestedNS { fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { if let Some(name) = self.variant_name() { f.write_str(name) } else { f.write_fmt(format_args!("", self.0)) } } } impl<'a> flatbuffers::Follow<'a> for EnumInNestedNS { type Inner = Self; #[inline] fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { let b = flatbuffers::read_scalar_at::(buf, loc); Self(b) } } impl flatbuffers::Push for EnumInNestedNS { type Output = EnumInNestedNS; #[inline] fn push(&self, dst: &mut [u8], _rest: &[u8]) { flatbuffers::emplace_scalar::(dst, self.0); } } impl flatbuffers::EndianScalar for EnumInNestedNS { #[inline] fn to_little_endian(self) -> Self { let b = i8::to_le(self.0); Self(b) } #[inline] #[allow(clippy::wrong_self_convention)] fn from_little_endian(self) -> Self { let b = i8::from_le(self.0); Self(b) } } impl<'a> flatbuffers::Verifiable for EnumInNestedNS { #[inline] fn run_verifier( v: &mut flatbuffers::Verifier, pos: usize ) -> Result<(), flatbuffers::InvalidFlatbuffer> { use self::flatbuffers::Verifiable; i8::run_verifier(v, pos) } } impl flatbuffers::SimpleToVerifyInSlice for EnumInNestedNS {} // struct StructInNestedNS, aligned to 4 #[repr(transparent)] #[derive(Clone, Copy, PartialEq)] pub struct StructInNestedNS(pub [u8; 8]); impl Default for StructInNestedNS { fn default() -> Self { Self([0; 8]) } } impl std::fmt::Debug for StructInNestedNS { fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { f.debug_struct("StructInNestedNS") .field("a", &self.a()) .field("b", &self.b()) .finish() } } impl flatbuffers::SimpleToVerifyInSlice for StructInNestedNS {} impl flatbuffers::SafeSliceAccess for StructInNestedNS {} impl<'a> flatbuffers::Follow<'a> for StructInNestedNS { type Inner = &'a StructInNestedNS; #[inline] fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { <&'a StructInNestedNS>::follow(buf, loc) } } impl<'a> flatbuffers::Follow<'a> for &'a StructInNestedNS { type Inner = &'a StructInNestedNS; #[inline] fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { flatbuffers::follow_cast_ref::(buf, loc) } } impl<'b> flatbuffers::Push for StructInNestedNS { type Output = StructInNestedNS; #[inline] fn push(&self, dst: &mut [u8], _rest: &[u8]) { let src = unsafe { ::std::slice::from_raw_parts(self as *const StructInNestedNS as *const u8, Self::size()) }; dst.copy_from_slice(src); } } impl<'b> flatbuffers::Push for &'b StructInNestedNS { type Output = StructInNestedNS; #[inline] fn push(&self, dst: &mut [u8], _rest: &[u8]) { let src = unsafe { ::std::slice::from_raw_parts(*self as *const StructInNestedNS as *const u8, Self::size()) }; dst.copy_from_slice(src); } } impl<'a> flatbuffers::Verifiable for StructInNestedNS { #[inline] fn run_verifier( v: &mut flatbuffers::Verifier, pos: usize ) -> Result<(), flatbuffers::InvalidFlatbuffer> { use self::flatbuffers::Verifiable; v.in_buffer::(pos) } } impl StructInNestedNS { #[allow(clippy::too_many_arguments)] pub fn new( a: i32, b: i32, ) -> Self { let mut s = Self([0; 8]); s.set_a(a); s.set_b(b); s } pub const fn get_fully_qualified_name() -> &'static str { "NamespaceA.NamespaceB.StructInNestedNS" } pub fn a(&self) -> i32 { let mut mem = core::mem::MaybeUninit::::uninit(); unsafe { core::ptr::copy_nonoverlapping( self.0[0..].as_ptr(), mem.as_mut_ptr() as *mut u8, core::mem::size_of::(), ); mem.assume_init() }.from_little_endian() } pub fn set_a(&mut self, x: i32) { let x_le = x.to_little_endian(); unsafe { core::ptr::copy_nonoverlapping( &x_le as *const i32 as *const u8, self.0[0..].as_mut_ptr(), core::mem::size_of::(), ); } } pub fn b(&self) -> i32 { let mut mem = core::mem::MaybeUninit::::uninit(); unsafe { core::ptr::copy_nonoverlapping( self.0[4..].as_ptr(), mem.as_mut_ptr() as *mut u8, core::mem::size_of::(), ); mem.assume_init() }.from_little_endian() } pub fn set_b(&mut self, x: i32) { let x_le = x.to_little_endian(); unsafe { core::ptr::copy_nonoverlapping( &x_le as *const i32 as *const u8, self.0[4..].as_mut_ptr(), core::mem::size_of::(), ); } } pub fn unpack(&self) -> StructInNestedNST { StructInNestedNST { a: self.a(), b: self.b(), } } } #[derive(Debug, Clone, PartialEq, Default)] pub struct StructInNestedNST { pub a: i32, pub b: i32, } impl StructInNestedNST { pub fn pack(&self) -> StructInNestedNS { StructInNestedNS::new( self.a, self.b, ) } } pub enum TableInNestedNSOffset {} #[derive(Copy, Clone, PartialEq)] pub struct TableInNestedNS<'a> { pub _tab: flatbuffers::Table<'a>, } impl<'a> flatbuffers::Follow<'a> for TableInNestedNS<'a> { type Inner = TableInNestedNS<'a>; #[inline] fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { Self { _tab: flatbuffers::Table { buf, loc } } } } impl<'a> TableInNestedNS<'a> { pub const fn get_fully_qualified_name() -> &'static str { "NamespaceA.NamespaceB.TableInNestedNS" } #[inline] pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { TableInNestedNS { _tab: table } } #[allow(unused_mut)] pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, args: &'args TableInNestedNSArgs) -> flatbuffers::WIPOffset> { let mut builder = TableInNestedNSBuilder::new(_fbb); builder.add_foo(args.foo); builder.finish() } pub fn unpack(&self) -> TableInNestedNST { let foo = self.foo(); TableInNestedNST { foo, } } pub const VT_FOO: flatbuffers::VOffsetT = 4; #[inline] pub fn foo(&self) -> i32 { self._tab.get::(TableInNestedNS::VT_FOO, Some(0)).unwrap() } } impl flatbuffers::Verifiable for TableInNestedNS<'_> { #[inline] fn run_verifier( v: &mut flatbuffers::Verifier, pos: usize ) -> Result<(), flatbuffers::InvalidFlatbuffer> { use self::flatbuffers::Verifiable; v.visit_table(pos)? .visit_field::(&"foo", Self::VT_FOO, false)? .finish(); Ok(()) } } pub struct TableInNestedNSArgs { pub foo: i32, } impl<'a> Default for TableInNestedNSArgs { #[inline] fn default() -> Self { TableInNestedNSArgs { foo: 0, } } } pub struct TableInNestedNSBuilder<'a: 'b, 'b> { fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, start_: flatbuffers::WIPOffset, } impl<'a: 'b, 'b> TableInNestedNSBuilder<'a, 'b> { #[inline] pub fn add_foo(&mut self, foo: i32) { self.fbb_.push_slot::(TableInNestedNS::VT_FOO, foo, 0); } #[inline] pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> TableInNestedNSBuilder<'a, 'b> { let start = _fbb.start_table(); TableInNestedNSBuilder { fbb_: _fbb, start_: start, } } #[inline] pub fn finish(self) -> flatbuffers::WIPOffset> { let o = self.fbb_.end_table(self.start_); flatbuffers::WIPOffset::new(o.value()) } } impl std::fmt::Debug for TableInNestedNS<'_> { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { let mut ds = f.debug_struct("TableInNestedNS"); ds.field("foo", &self.foo()); ds.finish() } } #[non_exhaustive] #[derive(Debug, Clone, PartialEq)] pub struct TableInNestedNST { pub foo: i32, } impl Default for TableInNestedNST { fn default() -> Self { Self { foo: 0, } } } impl TableInNestedNST { pub fn pack<'b>( &self, _fbb: &mut flatbuffers::FlatBufferBuilder<'b> ) -> flatbuffers::WIPOffset> { let foo = self.foo; TableInNestedNS::create(_fbb, &TableInNestedNSArgs{ foo, }) } } } // pub mod NamespaceB pub enum TableInFirstNSOffset {} #[derive(Copy, Clone, PartialEq)] pub struct TableInFirstNS<'a> { pub _tab: flatbuffers::Table<'a>, } impl<'a> flatbuffers::Follow<'a> for TableInFirstNS<'a> { type Inner = TableInFirstNS<'a>; #[inline] fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { Self { _tab: flatbuffers::Table { buf, loc } } } } impl<'a> TableInFirstNS<'a> { pub const fn get_fully_qualified_name() -> &'static str { "NamespaceA.TableInFirstNS" } #[inline] pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { TableInFirstNS { _tab: table } } #[allow(unused_mut)] pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, args: &'args TableInFirstNSArgs<'args>) -> flatbuffers::WIPOffset> { let mut builder = TableInFirstNSBuilder::new(_fbb); if let Some(x) = args.foo_struct { builder.add_foo_struct(x); } if let Some(x) = args.foo_union { builder.add_foo_union(x); } if let Some(x) = args.foo_table { builder.add_foo_table(x); } builder.add_foo_union_type(args.foo_union_type); builder.add_foo_enum(args.foo_enum); builder.finish() } pub fn unpack(&self) -> TableInFirstNST { let foo_table = self.foo_table().map(|x| { Box::new(x.unpack()) }); let foo_enum = self.foo_enum(); let foo_union = match self.foo_union_type() { namespace_b::UnionInNestedNS::NONE => namespace_b::UnionInNestedNST::NONE, namespace_b::UnionInNestedNS::TableInNestedNS => namespace_b::UnionInNestedNST::TableInNestedNS(Box::new( self.foo_union_as_table_in_nested_ns() .expect("Invalid union table, expected `namespace_b::UnionInNestedNS::TableInNestedNS`.") .unpack() )), _ => namespace_b::UnionInNestedNST::NONE, }; let foo_struct = self.foo_struct().map(|x| { x.unpack() }); TableInFirstNST { foo_table, foo_enum, foo_union, foo_struct, } } pub const VT_FOO_TABLE: flatbuffers::VOffsetT = 4; pub const VT_FOO_ENUM: flatbuffers::VOffsetT = 6; pub const VT_FOO_UNION_TYPE: flatbuffers::VOffsetT = 8; pub const VT_FOO_UNION: flatbuffers::VOffsetT = 10; pub const VT_FOO_STRUCT: flatbuffers::VOffsetT = 12; #[inline] pub fn foo_table(&self) -> Option> { self._tab.get::>(TableInFirstNS::VT_FOO_TABLE, None) } #[inline] pub fn foo_enum(&self) -> namespace_b::EnumInNestedNS { self._tab.get::(TableInFirstNS::VT_FOO_ENUM, Some(namespace_b::EnumInNestedNS::A)).unwrap() } #[inline] pub fn foo_union_type(&self) -> namespace_b::UnionInNestedNS { self._tab.get::(TableInFirstNS::VT_FOO_UNION_TYPE, Some(namespace_b::UnionInNestedNS::NONE)).unwrap() } #[inline] pub fn foo_union(&self) -> Option> { self._tab.get::>>(TableInFirstNS::VT_FOO_UNION, None) } #[inline] pub fn foo_struct(&self) -> Option<&'a namespace_b::StructInNestedNS> { self._tab.get::(TableInFirstNS::VT_FOO_STRUCT, None) } #[inline] #[allow(non_snake_case)] pub fn foo_union_as_table_in_nested_ns(&self) -> Option> { if self.foo_union_type() == namespace_b::UnionInNestedNS::TableInNestedNS { self.foo_union().map(namespace_b::TableInNestedNS::init_from_table) } else { None } } } impl flatbuffers::Verifiable for TableInFirstNS<'_> { #[inline] fn run_verifier( v: &mut flatbuffers::Verifier, pos: usize ) -> Result<(), flatbuffers::InvalidFlatbuffer> { use self::flatbuffers::Verifiable; v.visit_table(pos)? .visit_field::>(&"foo_table", Self::VT_FOO_TABLE, false)? .visit_field::(&"foo_enum", Self::VT_FOO_ENUM, false)? .visit_union::(&"foo_union_type", Self::VT_FOO_UNION_TYPE, &"foo_union", Self::VT_FOO_UNION, false, |key, v, pos| { match key { namespace_b::UnionInNestedNS::TableInNestedNS => v.verify_union_variant::>("namespace_b::UnionInNestedNS::TableInNestedNS", pos), _ => Ok(()), } })? .visit_field::(&"foo_struct", Self::VT_FOO_STRUCT, false)? .finish(); Ok(()) } } pub struct TableInFirstNSArgs<'a> { pub foo_table: Option>>, pub foo_enum: namespace_b::EnumInNestedNS, pub foo_union_type: namespace_b::UnionInNestedNS, pub foo_union: Option>, pub foo_struct: Option<&'a namespace_b::StructInNestedNS>, } impl<'a> Default for TableInFirstNSArgs<'a> { #[inline] fn default() -> Self { TableInFirstNSArgs { foo_table: None, foo_enum: namespace_b::EnumInNestedNS::A, foo_union_type: namespace_b::UnionInNestedNS::NONE, foo_union: None, foo_struct: None, } } } pub struct TableInFirstNSBuilder<'a: 'b, 'b> { fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, start_: flatbuffers::WIPOffset, } impl<'a: 'b, 'b> TableInFirstNSBuilder<'a, 'b> { #[inline] pub fn add_foo_table(&mut self, foo_table: flatbuffers::WIPOffset>) { self.fbb_.push_slot_always::>(TableInFirstNS::VT_FOO_TABLE, foo_table); } #[inline] pub fn add_foo_enum(&mut self, foo_enum: namespace_b::EnumInNestedNS) { self.fbb_.push_slot::(TableInFirstNS::VT_FOO_ENUM, foo_enum, namespace_b::EnumInNestedNS::A); } #[inline] pub fn add_foo_union_type(&mut self, foo_union_type: namespace_b::UnionInNestedNS) { self.fbb_.push_slot::(TableInFirstNS::VT_FOO_UNION_TYPE, foo_union_type, namespace_b::UnionInNestedNS::NONE); } #[inline] pub fn add_foo_union(&mut self, foo_union: flatbuffers::WIPOffset) { self.fbb_.push_slot_always::>(TableInFirstNS::VT_FOO_UNION, foo_union); } #[inline] pub fn add_foo_struct(&mut self, foo_struct: &namespace_b::StructInNestedNS) { self.fbb_.push_slot_always::<&namespace_b::StructInNestedNS>(TableInFirstNS::VT_FOO_STRUCT, foo_struct); } #[inline] pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> TableInFirstNSBuilder<'a, 'b> { let start = _fbb.start_table(); TableInFirstNSBuilder { fbb_: _fbb, start_: start, } } #[inline] pub fn finish(self) -> flatbuffers::WIPOffset> { let o = self.fbb_.end_table(self.start_); flatbuffers::WIPOffset::new(o.value()) } } impl std::fmt::Debug for TableInFirstNS<'_> { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { let mut ds = f.debug_struct("TableInFirstNS"); ds.field("foo_table", &self.foo_table()); ds.field("foo_enum", &self.foo_enum()); ds.field("foo_union_type", &self.foo_union_type()); match self.foo_union_type() { namespace_b::UnionInNestedNS::TableInNestedNS => { if let Some(x) = self.foo_union_as_table_in_nested_ns() { ds.field("foo_union", &x) } else { ds.field("foo_union", &"InvalidFlatbuffer: Union discriminant does not match value.") } }, _ => { let x: Option<()> = None; ds.field("foo_union", &x) }, }; ds.field("foo_struct", &self.foo_struct()); ds.finish() } } #[non_exhaustive] #[derive(Debug, Clone, PartialEq)] pub struct TableInFirstNST { pub foo_table: Option>, pub foo_enum: namespace_b::EnumInNestedNS, pub foo_union: namespace_b::UnionInNestedNST, pub foo_struct: Option, } impl Default for TableInFirstNST { fn default() -> Self { Self { foo_table: None, foo_enum: namespace_b::EnumInNestedNS::A, foo_union: namespace_b::UnionInNestedNST::NONE, foo_struct: None, } } } impl TableInFirstNST { pub fn pack<'b>( &self, _fbb: &mut flatbuffers::FlatBufferBuilder<'b> ) -> flatbuffers::WIPOffset> { let foo_table = self.foo_table.as_ref().map(|x|{ x.pack(_fbb) }); let foo_enum = self.foo_enum; let foo_union_type = self.foo_union.union_in_nested_ns_type(); let foo_union = self.foo_union.pack(_fbb); let foo_struct_tmp = self.foo_struct.as_ref().map(|x| x.pack()); let foo_struct = foo_struct_tmp.as_ref(); TableInFirstNS::create(_fbb, &TableInFirstNSArgs{ foo_table, foo_enum, foo_union_type, foo_union, foo_struct, }) } } pub enum SecondTableInAOffset {} #[derive(Copy, Clone, PartialEq)] pub struct SecondTableInA<'a> { pub _tab: flatbuffers::Table<'a>, } impl<'a> flatbuffers::Follow<'a> for SecondTableInA<'a> { type Inner = SecondTableInA<'a>; #[inline] fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { Self { _tab: flatbuffers::Table { buf, loc } } } } impl<'a> SecondTableInA<'a> { pub const fn get_fully_qualified_name() -> &'static str { "NamespaceA.SecondTableInA" } #[inline] pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { SecondTableInA { _tab: table } } #[allow(unused_mut)] pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, args: &'args SecondTableInAArgs<'args>) -> flatbuffers::WIPOffset> { let mut builder = SecondTableInABuilder::new(_fbb); if let Some(x) = args.refer_to_c { builder.add_refer_to_c(x); } builder.finish() } pub fn unpack(&self) -> SecondTableInAT { let refer_to_c = self.refer_to_c().map(|x| { Box::new(x.unpack()) }); SecondTableInAT { refer_to_c, } } pub const VT_REFER_TO_C: flatbuffers::VOffsetT = 4; #[inline] pub fn refer_to_c(&self) -> Option> { self._tab.get::>(SecondTableInA::VT_REFER_TO_C, None) } } impl flatbuffers::Verifiable for SecondTableInA<'_> { #[inline] fn run_verifier( v: &mut flatbuffers::Verifier, pos: usize ) -> Result<(), flatbuffers::InvalidFlatbuffer> { use self::flatbuffers::Verifiable; v.visit_table(pos)? .visit_field::>(&"refer_to_c", Self::VT_REFER_TO_C, false)? .finish(); Ok(()) } } pub struct SecondTableInAArgs<'a> { pub refer_to_c: Option>>, } impl<'a> Default for SecondTableInAArgs<'a> { #[inline] fn default() -> Self { SecondTableInAArgs { refer_to_c: None, } } } pub struct SecondTableInABuilder<'a: 'b, 'b> { fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, start_: flatbuffers::WIPOffset, } impl<'a: 'b, 'b> SecondTableInABuilder<'a, 'b> { #[inline] pub fn add_refer_to_c(&mut self, refer_to_c: flatbuffers::WIPOffset>) { self.fbb_.push_slot_always::>(SecondTableInA::VT_REFER_TO_C, refer_to_c); } #[inline] pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> SecondTableInABuilder<'a, 'b> { let start = _fbb.start_table(); SecondTableInABuilder { fbb_: _fbb, start_: start, } } #[inline] pub fn finish(self) -> flatbuffers::WIPOffset> { let o = self.fbb_.end_table(self.start_); flatbuffers::WIPOffset::new(o.value()) } } impl std::fmt::Debug for SecondTableInA<'_> { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { let mut ds = f.debug_struct("SecondTableInA"); ds.field("refer_to_c", &self.refer_to_c()); ds.finish() } } #[non_exhaustive] #[derive(Debug, Clone, PartialEq)] pub struct SecondTableInAT { pub refer_to_c: Option>, } impl Default for SecondTableInAT { fn default() -> Self { Self { refer_to_c: None, } } } impl SecondTableInAT { pub fn pack<'b>( &self, _fbb: &mut flatbuffers::FlatBufferBuilder<'b> ) -> flatbuffers::WIPOffset> { let refer_to_c = self.refer_to_c.as_ref().map(|x|{ x.pack(_fbb) }); SecondTableInA::create(_fbb, &SecondTableInAArgs{ refer_to_c, }) } } } // pub mod NamespaceA #[allow(unused_imports, dead_code)] pub mod namespace_c { use std::mem; use std::cmp::Ordering; extern crate flatbuffers; use self::flatbuffers::EndianScalar; pub enum TableInCOffset {} #[derive(Copy, Clone, PartialEq)] pub struct TableInC<'a> { pub _tab: flatbuffers::Table<'a>, } impl<'a> flatbuffers::Follow<'a> for TableInC<'a> { type Inner = TableInC<'a>; #[inline] fn follow(buf: &'a [u8], loc: usize) -> Self::Inner { Self { _tab: flatbuffers::Table { buf, loc } } } } impl<'a> TableInC<'a> { pub const fn get_fully_qualified_name() -> &'static str { "NamespaceC.TableInC" } #[inline] pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self { TableInC { _tab: table } } #[allow(unused_mut)] pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>( _fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>, args: &'args TableInCArgs<'args>) -> flatbuffers::WIPOffset> { let mut builder = TableInCBuilder::new(_fbb); if let Some(x) = args.refer_to_a2 { builder.add_refer_to_a2(x); } if let Some(x) = args.refer_to_a1 { builder.add_refer_to_a1(x); } builder.finish() } pub fn unpack(&self) -> TableInCT { let refer_to_a1 = self.refer_to_a1().map(|x| { Box::new(x.unpack()) }); let refer_to_a2 = self.refer_to_a2().map(|x| { Box::new(x.unpack()) }); TableInCT { refer_to_a1, refer_to_a2, } } pub const VT_REFER_TO_A1: flatbuffers::VOffsetT = 4; pub const VT_REFER_TO_A2: flatbuffers::VOffsetT = 6; #[inline] pub fn refer_to_a1(&self) -> Option> { self._tab.get::>(TableInC::VT_REFER_TO_A1, None) } #[inline] pub fn refer_to_a2(&self) -> Option> { self._tab.get::>(TableInC::VT_REFER_TO_A2, None) } } impl flatbuffers::Verifiable for TableInC<'_> { #[inline] fn run_verifier( v: &mut flatbuffers::Verifier, pos: usize ) -> Result<(), flatbuffers::InvalidFlatbuffer> { use self::flatbuffers::Verifiable; v.visit_table(pos)? .visit_field::>(&"refer_to_a1", Self::VT_REFER_TO_A1, false)? .visit_field::>(&"refer_to_a2", Self::VT_REFER_TO_A2, false)? .finish(); Ok(()) } } pub struct TableInCArgs<'a> { pub refer_to_a1: Option>>, pub refer_to_a2: Option>>, } impl<'a> Default for TableInCArgs<'a> { #[inline] fn default() -> Self { TableInCArgs { refer_to_a1: None, refer_to_a2: None, } } } pub struct TableInCBuilder<'a: 'b, 'b> { fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>, start_: flatbuffers::WIPOffset, } impl<'a: 'b, 'b> TableInCBuilder<'a, 'b> { #[inline] pub fn add_refer_to_a1(&mut self, refer_to_a1: flatbuffers::WIPOffset>) { self.fbb_.push_slot_always::>(TableInC::VT_REFER_TO_A1, refer_to_a1); } #[inline] pub fn add_refer_to_a2(&mut self, refer_to_a2: flatbuffers::WIPOffset>) { self.fbb_.push_slot_always::>(TableInC::VT_REFER_TO_A2, refer_to_a2); } #[inline] pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> TableInCBuilder<'a, 'b> { let start = _fbb.start_table(); TableInCBuilder { fbb_: _fbb, start_: start, } } #[inline] pub fn finish(self) -> flatbuffers::WIPOffset> { let o = self.fbb_.end_table(self.start_); flatbuffers::WIPOffset::new(o.value()) } } impl std::fmt::Debug for TableInC<'_> { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { let mut ds = f.debug_struct("TableInC"); ds.field("refer_to_a1", &self.refer_to_a1()); ds.field("refer_to_a2", &self.refer_to_a2()); ds.finish() } } #[non_exhaustive] #[derive(Debug, Clone, PartialEq)] pub struct TableInCT { pub refer_to_a1: Option>, pub refer_to_a2: Option>, } impl Default for TableInCT { fn default() -> Self { Self { refer_to_a1: None, refer_to_a2: None, } } } impl TableInCT { pub fn pack<'b>( &self, _fbb: &mut flatbuffers::FlatBufferBuilder<'b> ) -> flatbuffers::WIPOffset> { let refer_to_a1 = self.refer_to_a1.as_ref().map(|x|{ x.pack(_fbb) }); let refer_to_a2 = self.refer_to_a2.as_ref().map(|x|{ x.pack(_fbb) }); TableInC::create(_fbb, &TableInCArgs{ refer_to_a1, refer_to_a2, }) } } } // pub mod NamespaceC