mirror of
https://github.com/google/flatbuffers.git
synced 2026-06-03 12:21:23 +00:00
* [idl_gen] Delete ts::GenPrefixedImport() I don't know what this is for, but it's the only piece of code external to idl_parser.cpp that expects the key of Parser::included_files_ to be a path. And it appears to be unused. * [idl_parser] Track included files by hash Parser::included_files_ is a map whose main purpose is to keep track of which files have already been parsed in order to protect against multiple inclusion. Its key is the path that the file was found at during parsing (or, if it's an in-memory file, just its name). This commit changes the key to be the 64 bit FNV-1a hash of the file's name (just the name, not the complete path) xor'd with the hash of the file's contents (unless it's an in-memory file, then we only hash the name.) This allows multiple include protection to function even in the face of unique per-file include paths (fixes #6425). * Ran tests/generate_code.sh CI told me to do it. * Gracefullt handle case where source_filename == nullptr I just learned source_filename might also be null. In that case, we should exclude it from the hash instead of hashing a zero length string, just like we exclude source when it is null. Presumably nameless files will never be included (they can't, can they?) so this doesn't really matter, but I think it's prettier anyways.
3858 lines
129 KiB
Rust
3858 lines
129 KiB
Rust
// automatically generated by the FlatBuffers compiler, do not modify
|
|
|
|
|
|
|
|
use crate::include_test2_generated::*;
|
|
use crate::include_test1_generated::*;
|
|
use std::mem;
|
|
use std::cmp::Ordering;
|
|
|
|
extern crate flatbuffers;
|
|
use self::flatbuffers::EndianScalar;
|
|
|
|
#[allow(unused_imports, dead_code)]
|
|
pub mod my_game {
|
|
|
|
use crate::include_test2_generated::*;
|
|
use crate::include_test1_generated::*;
|
|
use std::mem;
|
|
use std::cmp::Ordering;
|
|
|
|
extern crate flatbuffers;
|
|
use self::flatbuffers::EndianScalar;
|
|
|
|
pub enum InParentNamespaceOffset {}
|
|
#[derive(Copy, Clone, PartialEq)]
|
|
|
|
pub struct InParentNamespace<'a> {
|
|
pub _tab: flatbuffers::Table<'a>,
|
|
}
|
|
|
|
impl<'a> flatbuffers::Follow<'a> for InParentNamespace<'a> {
|
|
type Inner = InParentNamespace<'a>;
|
|
#[inline]
|
|
fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
|
|
Self { _tab: flatbuffers::Table { buf, loc } }
|
|
}
|
|
}
|
|
|
|
impl<'a> InParentNamespace<'a> {
|
|
pub const fn get_fully_qualified_name() -> &'static str {
|
|
"MyGame.InParentNamespace"
|
|
}
|
|
|
|
#[inline]
|
|
pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
|
|
InParentNamespace { _tab: table }
|
|
}
|
|
#[allow(unused_mut)]
|
|
pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>(
|
|
_fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>,
|
|
_args: &'args InParentNamespaceArgs) -> flatbuffers::WIPOffset<InParentNamespace<'bldr>> {
|
|
let mut builder = InParentNamespaceBuilder::new(_fbb);
|
|
builder.finish()
|
|
}
|
|
|
|
pub fn unpack(&self) -> InParentNamespaceT {
|
|
InParentNamespaceT {
|
|
}
|
|
}
|
|
}
|
|
|
|
impl flatbuffers::Verifiable for InParentNamespace<'_> {
|
|
#[inline]
|
|
fn run_verifier(
|
|
v: &mut flatbuffers::Verifier, pos: usize
|
|
) -> Result<(), flatbuffers::InvalidFlatbuffer> {
|
|
use self::flatbuffers::Verifiable;
|
|
v.visit_table(pos)?
|
|
.finish();
|
|
Ok(())
|
|
}
|
|
}
|
|
pub struct InParentNamespaceArgs {
|
|
}
|
|
impl<'a> Default for InParentNamespaceArgs {
|
|
#[inline]
|
|
fn default() -> Self {
|
|
InParentNamespaceArgs {
|
|
}
|
|
}
|
|
}
|
|
pub struct InParentNamespaceBuilder<'a: 'b, 'b> {
|
|
fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>,
|
|
start_: flatbuffers::WIPOffset<flatbuffers::TableUnfinishedWIPOffset>,
|
|
}
|
|
impl<'a: 'b, 'b> InParentNamespaceBuilder<'a, 'b> {
|
|
#[inline]
|
|
pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> InParentNamespaceBuilder<'a, 'b> {
|
|
let start = _fbb.start_table();
|
|
InParentNamespaceBuilder {
|
|
fbb_: _fbb,
|
|
start_: start,
|
|
}
|
|
}
|
|
#[inline]
|
|
pub fn finish(self) -> flatbuffers::WIPOffset<InParentNamespace<'a>> {
|
|
let o = self.fbb_.end_table(self.start_);
|
|
flatbuffers::WIPOffset::new(o.value())
|
|
}
|
|
}
|
|
|
|
impl std::fmt::Debug for InParentNamespace<'_> {
|
|
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
|
let mut ds = f.debug_struct("InParentNamespace");
|
|
ds.finish()
|
|
}
|
|
}
|
|
#[non_exhaustive]
|
|
#[derive(Debug, Clone, PartialEq)]
|
|
pub struct InParentNamespaceT {
|
|
}
|
|
impl Default for InParentNamespaceT {
|
|
fn default() -> Self {
|
|
Self {
|
|
}
|
|
}
|
|
}
|
|
impl InParentNamespaceT {
|
|
pub fn pack<'b>(
|
|
&self,
|
|
_fbb: &mut flatbuffers::FlatBufferBuilder<'b>
|
|
) -> flatbuffers::WIPOffset<InParentNamespace<'b>> {
|
|
InParentNamespace::create(_fbb, &InParentNamespaceArgs{
|
|
})
|
|
}
|
|
}
|
|
#[allow(unused_imports, dead_code)]
|
|
pub mod example_2 {
|
|
|
|
use crate::include_test2_generated::*;
|
|
use crate::include_test1_generated::*;
|
|
use std::mem;
|
|
use std::cmp::Ordering;
|
|
|
|
extern crate flatbuffers;
|
|
use self::flatbuffers::EndianScalar;
|
|
|
|
pub enum MonsterOffset {}
|
|
#[derive(Copy, Clone, PartialEq)]
|
|
|
|
pub struct Monster<'a> {
|
|
pub _tab: flatbuffers::Table<'a>,
|
|
}
|
|
|
|
impl<'a> flatbuffers::Follow<'a> for Monster<'a> {
|
|
type Inner = Monster<'a>;
|
|
#[inline]
|
|
fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
|
|
Self { _tab: flatbuffers::Table { buf, loc } }
|
|
}
|
|
}
|
|
|
|
impl<'a> Monster<'a> {
|
|
pub const fn get_fully_qualified_name() -> &'static str {
|
|
"MyGame.Example2.Monster"
|
|
}
|
|
|
|
#[inline]
|
|
pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
|
|
Monster { _tab: table }
|
|
}
|
|
#[allow(unused_mut)]
|
|
pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>(
|
|
_fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>,
|
|
_args: &'args MonsterArgs) -> flatbuffers::WIPOffset<Monster<'bldr>> {
|
|
let mut builder = MonsterBuilder::new(_fbb);
|
|
builder.finish()
|
|
}
|
|
|
|
pub fn unpack(&self) -> MonsterT {
|
|
MonsterT {
|
|
}
|
|
}
|
|
}
|
|
|
|
impl flatbuffers::Verifiable for Monster<'_> {
|
|
#[inline]
|
|
fn run_verifier(
|
|
v: &mut flatbuffers::Verifier, pos: usize
|
|
) -> Result<(), flatbuffers::InvalidFlatbuffer> {
|
|
use self::flatbuffers::Verifiable;
|
|
v.visit_table(pos)?
|
|
.finish();
|
|
Ok(())
|
|
}
|
|
}
|
|
pub struct MonsterArgs {
|
|
}
|
|
impl<'a> Default for MonsterArgs {
|
|
#[inline]
|
|
fn default() -> Self {
|
|
MonsterArgs {
|
|
}
|
|
}
|
|
}
|
|
pub struct MonsterBuilder<'a: 'b, 'b> {
|
|
fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>,
|
|
start_: flatbuffers::WIPOffset<flatbuffers::TableUnfinishedWIPOffset>,
|
|
}
|
|
impl<'a: 'b, 'b> MonsterBuilder<'a, 'b> {
|
|
#[inline]
|
|
pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> MonsterBuilder<'a, 'b> {
|
|
let start = _fbb.start_table();
|
|
MonsterBuilder {
|
|
fbb_: _fbb,
|
|
start_: start,
|
|
}
|
|
}
|
|
#[inline]
|
|
pub fn finish(self) -> flatbuffers::WIPOffset<Monster<'a>> {
|
|
let o = self.fbb_.end_table(self.start_);
|
|
flatbuffers::WIPOffset::new(o.value())
|
|
}
|
|
}
|
|
|
|
impl std::fmt::Debug for Monster<'_> {
|
|
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
|
let mut ds = f.debug_struct("Monster");
|
|
ds.finish()
|
|
}
|
|
}
|
|
#[non_exhaustive]
|
|
#[derive(Debug, Clone, PartialEq)]
|
|
pub struct MonsterT {
|
|
}
|
|
impl Default for MonsterT {
|
|
fn default() -> Self {
|
|
Self {
|
|
}
|
|
}
|
|
}
|
|
impl MonsterT {
|
|
pub fn pack<'b>(
|
|
&self,
|
|
_fbb: &mut flatbuffers::FlatBufferBuilder<'b>
|
|
) -> flatbuffers::WIPOffset<Monster<'b>> {
|
|
Monster::create(_fbb, &MonsterArgs{
|
|
})
|
|
}
|
|
}
|
|
} // pub mod Example2
|
|
|
|
#[allow(unused_imports, dead_code)]
|
|
pub mod example {
|
|
|
|
use crate::include_test2_generated::*;
|
|
use crate::include_test1_generated::*;
|
|
use std::mem;
|
|
use std::cmp::Ordering;
|
|
|
|
extern crate flatbuffers;
|
|
use self::flatbuffers::EndianScalar;
|
|
|
|
#[allow(non_upper_case_globals)]
|
|
mod bitflags_color {
|
|
flatbuffers::bitflags::bitflags! {
|
|
/// Composite components of Monster color.
|
|
#[derive(Default)]
|
|
pub struct Color: u8 {
|
|
const Red = 1;
|
|
/// \brief color Green
|
|
/// Green is bit_flag with value (1u << 1)
|
|
const Green = 2;
|
|
/// \brief color Blue (1u << 3)
|
|
const Blue = 8;
|
|
}
|
|
}
|
|
}
|
|
pub use self::bitflags_color::Color;
|
|
|
|
impl<'a> flatbuffers::Follow<'a> for Color {
|
|
type Inner = Self;
|
|
#[inline]
|
|
fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
|
|
let b = flatbuffers::read_scalar_at::<u8>(buf, loc);
|
|
unsafe { Self::from_bits_unchecked(b) }
|
|
}
|
|
}
|
|
|
|
impl flatbuffers::Push for Color {
|
|
type Output = Color;
|
|
#[inline]
|
|
fn push(&self, dst: &mut [u8], _rest: &[u8]) {
|
|
flatbuffers::emplace_scalar::<u8>(dst, self.bits());
|
|
}
|
|
}
|
|
|
|
impl flatbuffers::EndianScalar for Color {
|
|
#[inline]
|
|
fn to_little_endian(self) -> Self {
|
|
let b = u8::to_le(self.bits());
|
|
unsafe { Self::from_bits_unchecked(b) }
|
|
}
|
|
#[inline]
|
|
fn from_little_endian(self) -> Self {
|
|
let b = u8::from_le(self.bits());
|
|
unsafe { Self::from_bits_unchecked(b) }
|
|
}
|
|
}
|
|
|
|
impl<'a> flatbuffers::Verifiable for Color {
|
|
#[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 Color {}
|
|
#[deprecated(since = "2.0.0", note = "Use associated constants instead. This will no longer be generated in 2021.")]
|
|
pub const ENUM_MIN_RACE: i8 = -1;
|
|
#[deprecated(since = "2.0.0", note = "Use associated constants instead. This will no longer be generated in 2021.")]
|
|
pub const ENUM_MAX_RACE: 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_RACE: [Race; 4] = [
|
|
Race::None,
|
|
Race::Human,
|
|
Race::Dwarf,
|
|
Race::Elf,
|
|
];
|
|
|
|
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
|
|
#[repr(transparent)]
|
|
pub struct Race(pub i8);
|
|
#[allow(non_upper_case_globals)]
|
|
impl Race {
|
|
pub const None: Self = Self(-1);
|
|
pub const Human: Self = Self(0);
|
|
pub const Dwarf: Self = Self(1);
|
|
pub const Elf: Self = Self(2);
|
|
|
|
pub const ENUM_MIN: i8 = -1;
|
|
pub const ENUM_MAX: i8 = 2;
|
|
pub const ENUM_VALUES: &'static [Self] = &[
|
|
Self::None,
|
|
Self::Human,
|
|
Self::Dwarf,
|
|
Self::Elf,
|
|
];
|
|
/// Returns the variant's name or "" if unknown.
|
|
pub fn variant_name(self) -> Option<&'static str> {
|
|
match self {
|
|
Self::None => Some("None"),
|
|
Self::Human => Some("Human"),
|
|
Self::Dwarf => Some("Dwarf"),
|
|
Self::Elf => Some("Elf"),
|
|
_ => None,
|
|
}
|
|
}
|
|
}
|
|
impl std::fmt::Debug for Race {
|
|
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!("<UNKNOWN {:?}>", self.0))
|
|
}
|
|
}
|
|
}
|
|
impl<'a> flatbuffers::Follow<'a> for Race {
|
|
type Inner = Self;
|
|
#[inline]
|
|
fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
|
|
let b = flatbuffers::read_scalar_at::<i8>(buf, loc);
|
|
Self(b)
|
|
}
|
|
}
|
|
|
|
impl flatbuffers::Push for Race {
|
|
type Output = Race;
|
|
#[inline]
|
|
fn push(&self, dst: &mut [u8], _rest: &[u8]) {
|
|
flatbuffers::emplace_scalar::<i8>(dst, self.0);
|
|
}
|
|
}
|
|
|
|
impl flatbuffers::EndianScalar for Race {
|
|
#[inline]
|
|
fn to_little_endian(self) -> Self {
|
|
let b = i8::to_le(self.0);
|
|
Self(b)
|
|
}
|
|
#[inline]
|
|
fn from_little_endian(self) -> Self {
|
|
let b = i8::from_le(self.0);
|
|
Self(b)
|
|
}
|
|
}
|
|
|
|
impl<'a> flatbuffers::Verifiable for Race {
|
|
#[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 Race {}
|
|
#[deprecated(since = "2.0.0", note = "Use associated constants instead. This will no longer be generated in 2021.")]
|
|
pub const ENUM_MIN_ANY: u8 = 0;
|
|
#[deprecated(since = "2.0.0", note = "Use associated constants instead. This will no longer be generated in 2021.")]
|
|
pub const ENUM_MAX_ANY: u8 = 3;
|
|
#[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_ANY: [Any; 4] = [
|
|
Any::NONE,
|
|
Any::Monster,
|
|
Any::TestSimpleTableWithEnum,
|
|
Any::MyGame_Example2_Monster,
|
|
];
|
|
|
|
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
|
|
#[repr(transparent)]
|
|
pub struct Any(pub u8);
|
|
#[allow(non_upper_case_globals)]
|
|
impl Any {
|
|
pub const NONE: Self = Self(0);
|
|
pub const Monster: Self = Self(1);
|
|
pub const TestSimpleTableWithEnum: Self = Self(2);
|
|
pub const MyGame_Example2_Monster: Self = Self(3);
|
|
|
|
pub const ENUM_MIN: u8 = 0;
|
|
pub const ENUM_MAX: u8 = 3;
|
|
pub const ENUM_VALUES: &'static [Self] = &[
|
|
Self::NONE,
|
|
Self::Monster,
|
|
Self::TestSimpleTableWithEnum,
|
|
Self::MyGame_Example2_Monster,
|
|
];
|
|
/// Returns the variant's name or "" if unknown.
|
|
pub fn variant_name(self) -> Option<&'static str> {
|
|
match self {
|
|
Self::NONE => Some("NONE"),
|
|
Self::Monster => Some("Monster"),
|
|
Self::TestSimpleTableWithEnum => Some("TestSimpleTableWithEnum"),
|
|
Self::MyGame_Example2_Monster => Some("MyGame_Example2_Monster"),
|
|
_ => None,
|
|
}
|
|
}
|
|
}
|
|
impl std::fmt::Debug for Any {
|
|
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!("<UNKNOWN {:?}>", self.0))
|
|
}
|
|
}
|
|
}
|
|
impl<'a> flatbuffers::Follow<'a> for Any {
|
|
type Inner = Self;
|
|
#[inline]
|
|
fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
|
|
let b = flatbuffers::read_scalar_at::<u8>(buf, loc);
|
|
Self(b)
|
|
}
|
|
}
|
|
|
|
impl flatbuffers::Push for Any {
|
|
type Output = Any;
|
|
#[inline]
|
|
fn push(&self, dst: &mut [u8], _rest: &[u8]) {
|
|
flatbuffers::emplace_scalar::<u8>(dst, self.0);
|
|
}
|
|
}
|
|
|
|
impl flatbuffers::EndianScalar for Any {
|
|
#[inline]
|
|
fn to_little_endian(self) -> Self {
|
|
let b = u8::to_le(self.0);
|
|
Self(b)
|
|
}
|
|
#[inline]
|
|
fn from_little_endian(self) -> Self {
|
|
let b = u8::from_le(self.0);
|
|
Self(b)
|
|
}
|
|
}
|
|
|
|
impl<'a> flatbuffers::Verifiable for Any {
|
|
#[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 Any {}
|
|
pub struct AnyUnionTableOffset {}
|
|
|
|
#[non_exhaustive]
|
|
#[derive(Debug, Clone, PartialEq)]
|
|
pub enum AnyT {
|
|
NONE,
|
|
Monster(Box<MonsterT>),
|
|
TestSimpleTableWithEnum(Box<TestSimpleTableWithEnumT>),
|
|
MyGameExample2Monster(Box<super::example_2::MonsterT>),
|
|
}
|
|
impl Default for AnyT {
|
|
fn default() -> Self {
|
|
Self::NONE
|
|
}
|
|
}
|
|
impl AnyT {
|
|
pub fn any_type(&self) -> Any {
|
|
match self {
|
|
Self::NONE => Any::NONE,
|
|
Self::Monster(_) => Any::Monster,
|
|
Self::TestSimpleTableWithEnum(_) => Any::TestSimpleTableWithEnum,
|
|
Self::MyGameExample2Monster(_) => Any::MyGame_Example2_Monster,
|
|
}
|
|
}
|
|
pub fn pack(&self, fbb: &mut flatbuffers::FlatBufferBuilder) -> Option<flatbuffers::WIPOffset<flatbuffers::UnionWIPOffset>> {
|
|
match self {
|
|
Self::NONE => None,
|
|
Self::Monster(v) => Some(v.pack(fbb).as_union_value()),
|
|
Self::TestSimpleTableWithEnum(v) => Some(v.pack(fbb).as_union_value()),
|
|
Self::MyGameExample2Monster(v) => Some(v.pack(fbb).as_union_value()),
|
|
}
|
|
}
|
|
/// If the union variant matches, return the owned MonsterT, setting the union to NONE.
|
|
pub fn take_monster(&mut self) -> Option<Box<MonsterT>> {
|
|
if let Self::Monster(_) = self {
|
|
let v = std::mem::replace(self, Self::NONE);
|
|
if let Self::Monster(w) = v {
|
|
Some(w)
|
|
} else {
|
|
unreachable!()
|
|
}
|
|
} else {
|
|
None
|
|
}
|
|
}
|
|
/// If the union variant matches, return a reference to the MonsterT.
|
|
pub fn as_monster(&self) -> Option<&MonsterT> {
|
|
if let Self::Monster(v) = self { Some(v.as_ref()) } else { None }
|
|
}
|
|
/// If the union variant matches, return a mutable reference to the MonsterT.
|
|
pub fn as_monster_mut(&mut self) -> Option<&mut MonsterT> {
|
|
if let Self::Monster(v) = self { Some(v.as_mut()) } else { None }
|
|
}
|
|
/// If the union variant matches, return the owned TestSimpleTableWithEnumT, setting the union to NONE.
|
|
pub fn take_test_simple_table_with_enum(&mut self) -> Option<Box<TestSimpleTableWithEnumT>> {
|
|
if let Self::TestSimpleTableWithEnum(_) = self {
|
|
let v = std::mem::replace(self, Self::NONE);
|
|
if let Self::TestSimpleTableWithEnum(w) = v {
|
|
Some(w)
|
|
} else {
|
|
unreachable!()
|
|
}
|
|
} else {
|
|
None
|
|
}
|
|
}
|
|
/// If the union variant matches, return a reference to the TestSimpleTableWithEnumT.
|
|
pub fn as_test_simple_table_with_enum(&self) -> Option<&TestSimpleTableWithEnumT> {
|
|
if let Self::TestSimpleTableWithEnum(v) = self { Some(v.as_ref()) } else { None }
|
|
}
|
|
/// If the union variant matches, return a mutable reference to the TestSimpleTableWithEnumT.
|
|
pub fn as_test_simple_table_with_enum_mut(&mut self) -> Option<&mut TestSimpleTableWithEnumT> {
|
|
if let Self::TestSimpleTableWithEnum(v) = self { Some(v.as_mut()) } else { None }
|
|
}
|
|
/// If the union variant matches, return the owned super::example_2::MonsterT, setting the union to NONE.
|
|
pub fn take_my_game_example_2_monster(&mut self) -> Option<Box<super::example_2::MonsterT>> {
|
|
if let Self::MyGameExample2Monster(_) = self {
|
|
let v = std::mem::replace(self, Self::NONE);
|
|
if let Self::MyGameExample2Monster(w) = v {
|
|
Some(w)
|
|
} else {
|
|
unreachable!()
|
|
}
|
|
} else {
|
|
None
|
|
}
|
|
}
|
|
/// If the union variant matches, return a reference to the super::example_2::MonsterT.
|
|
pub fn as_my_game_example_2_monster(&self) -> Option<&super::example_2::MonsterT> {
|
|
if let Self::MyGameExample2Monster(v) = self { Some(v.as_ref()) } else { None }
|
|
}
|
|
/// If the union variant matches, return a mutable reference to the super::example_2::MonsterT.
|
|
pub fn as_my_game_example_2_monster_mut(&mut self) -> Option<&mut super::example_2::MonsterT> {
|
|
if let Self::MyGameExample2Monster(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_ANY_UNIQUE_ALIASES: u8 = 0;
|
|
#[deprecated(since = "2.0.0", note = "Use associated constants instead. This will no longer be generated in 2021.")]
|
|
pub const ENUM_MAX_ANY_UNIQUE_ALIASES: u8 = 3;
|
|
#[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_ANY_UNIQUE_ALIASES: [AnyUniqueAliases; 4] = [
|
|
AnyUniqueAliases::NONE,
|
|
AnyUniqueAliases::M,
|
|
AnyUniqueAliases::TS,
|
|
AnyUniqueAliases::M2,
|
|
];
|
|
|
|
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
|
|
#[repr(transparent)]
|
|
pub struct AnyUniqueAliases(pub u8);
|
|
#[allow(non_upper_case_globals)]
|
|
impl AnyUniqueAliases {
|
|
pub const NONE: Self = Self(0);
|
|
pub const M: Self = Self(1);
|
|
pub const TS: Self = Self(2);
|
|
pub const M2: Self = Self(3);
|
|
|
|
pub const ENUM_MIN: u8 = 0;
|
|
pub const ENUM_MAX: u8 = 3;
|
|
pub const ENUM_VALUES: &'static [Self] = &[
|
|
Self::NONE,
|
|
Self::M,
|
|
Self::TS,
|
|
Self::M2,
|
|
];
|
|
/// Returns the variant's name or "" if unknown.
|
|
pub fn variant_name(self) -> Option<&'static str> {
|
|
match self {
|
|
Self::NONE => Some("NONE"),
|
|
Self::M => Some("M"),
|
|
Self::TS => Some("TS"),
|
|
Self::M2 => Some("M2"),
|
|
_ => None,
|
|
}
|
|
}
|
|
}
|
|
impl std::fmt::Debug for AnyUniqueAliases {
|
|
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!("<UNKNOWN {:?}>", self.0))
|
|
}
|
|
}
|
|
}
|
|
impl<'a> flatbuffers::Follow<'a> for AnyUniqueAliases {
|
|
type Inner = Self;
|
|
#[inline]
|
|
fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
|
|
let b = flatbuffers::read_scalar_at::<u8>(buf, loc);
|
|
Self(b)
|
|
}
|
|
}
|
|
|
|
impl flatbuffers::Push for AnyUniqueAliases {
|
|
type Output = AnyUniqueAliases;
|
|
#[inline]
|
|
fn push(&self, dst: &mut [u8], _rest: &[u8]) {
|
|
flatbuffers::emplace_scalar::<u8>(dst, self.0);
|
|
}
|
|
}
|
|
|
|
impl flatbuffers::EndianScalar for AnyUniqueAliases {
|
|
#[inline]
|
|
fn to_little_endian(self) -> Self {
|
|
let b = u8::to_le(self.0);
|
|
Self(b)
|
|
}
|
|
#[inline]
|
|
fn from_little_endian(self) -> Self {
|
|
let b = u8::from_le(self.0);
|
|
Self(b)
|
|
}
|
|
}
|
|
|
|
impl<'a> flatbuffers::Verifiable for AnyUniqueAliases {
|
|
#[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 AnyUniqueAliases {}
|
|
pub struct AnyUniqueAliasesUnionTableOffset {}
|
|
|
|
#[non_exhaustive]
|
|
#[derive(Debug, Clone, PartialEq)]
|
|
pub enum AnyUniqueAliasesT {
|
|
NONE,
|
|
M(Box<MonsterT>),
|
|
TS(Box<TestSimpleTableWithEnumT>),
|
|
M2(Box<super::example_2::MonsterT>),
|
|
}
|
|
impl Default for AnyUniqueAliasesT {
|
|
fn default() -> Self {
|
|
Self::NONE
|
|
}
|
|
}
|
|
impl AnyUniqueAliasesT {
|
|
pub fn any_unique_aliases_type(&self) -> AnyUniqueAliases {
|
|
match self {
|
|
Self::NONE => AnyUniqueAliases::NONE,
|
|
Self::M(_) => AnyUniqueAliases::M,
|
|
Self::TS(_) => AnyUniqueAliases::TS,
|
|
Self::M2(_) => AnyUniqueAliases::M2,
|
|
}
|
|
}
|
|
pub fn pack(&self, fbb: &mut flatbuffers::FlatBufferBuilder) -> Option<flatbuffers::WIPOffset<flatbuffers::UnionWIPOffset>> {
|
|
match self {
|
|
Self::NONE => None,
|
|
Self::M(v) => Some(v.pack(fbb).as_union_value()),
|
|
Self::TS(v) => Some(v.pack(fbb).as_union_value()),
|
|
Self::M2(v) => Some(v.pack(fbb).as_union_value()),
|
|
}
|
|
}
|
|
/// If the union variant matches, return the owned MonsterT, setting the union to NONE.
|
|
pub fn take_m(&mut self) -> Option<Box<MonsterT>> {
|
|
if let Self::M(_) = self {
|
|
let v = std::mem::replace(self, Self::NONE);
|
|
if let Self::M(w) = v {
|
|
Some(w)
|
|
} else {
|
|
unreachable!()
|
|
}
|
|
} else {
|
|
None
|
|
}
|
|
}
|
|
/// If the union variant matches, return a reference to the MonsterT.
|
|
pub fn as_m(&self) -> Option<&MonsterT> {
|
|
if let Self::M(v) = self { Some(v.as_ref()) } else { None }
|
|
}
|
|
/// If the union variant matches, return a mutable reference to the MonsterT.
|
|
pub fn as_m_mut(&mut self) -> Option<&mut MonsterT> {
|
|
if let Self::M(v) = self { Some(v.as_mut()) } else { None }
|
|
}
|
|
/// If the union variant matches, return the owned TestSimpleTableWithEnumT, setting the union to NONE.
|
|
pub fn take_ts(&mut self) -> Option<Box<TestSimpleTableWithEnumT>> {
|
|
if let Self::TS(_) = self {
|
|
let v = std::mem::replace(self, Self::NONE);
|
|
if let Self::TS(w) = v {
|
|
Some(w)
|
|
} else {
|
|
unreachable!()
|
|
}
|
|
} else {
|
|
None
|
|
}
|
|
}
|
|
/// If the union variant matches, return a reference to the TestSimpleTableWithEnumT.
|
|
pub fn as_ts(&self) -> Option<&TestSimpleTableWithEnumT> {
|
|
if let Self::TS(v) = self { Some(v.as_ref()) } else { None }
|
|
}
|
|
/// If the union variant matches, return a mutable reference to the TestSimpleTableWithEnumT.
|
|
pub fn as_ts_mut(&mut self) -> Option<&mut TestSimpleTableWithEnumT> {
|
|
if let Self::TS(v) = self { Some(v.as_mut()) } else { None }
|
|
}
|
|
/// If the union variant matches, return the owned super::example_2::MonsterT, setting the union to NONE.
|
|
pub fn take_m2(&mut self) -> Option<Box<super::example_2::MonsterT>> {
|
|
if let Self::M2(_) = self {
|
|
let v = std::mem::replace(self, Self::NONE);
|
|
if let Self::M2(w) = v {
|
|
Some(w)
|
|
} else {
|
|
unreachable!()
|
|
}
|
|
} else {
|
|
None
|
|
}
|
|
}
|
|
/// If the union variant matches, return a reference to the super::example_2::MonsterT.
|
|
pub fn as_m2(&self) -> Option<&super::example_2::MonsterT> {
|
|
if let Self::M2(v) = self { Some(v.as_ref()) } else { None }
|
|
}
|
|
/// If the union variant matches, return a mutable reference to the super::example_2::MonsterT.
|
|
pub fn as_m2_mut(&mut self) -> Option<&mut super::example_2::MonsterT> {
|
|
if let Self::M2(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_ANY_AMBIGUOUS_ALIASES: u8 = 0;
|
|
#[deprecated(since = "2.0.0", note = "Use associated constants instead. This will no longer be generated in 2021.")]
|
|
pub const ENUM_MAX_ANY_AMBIGUOUS_ALIASES: u8 = 3;
|
|
#[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_ANY_AMBIGUOUS_ALIASES: [AnyAmbiguousAliases; 4] = [
|
|
AnyAmbiguousAliases::NONE,
|
|
AnyAmbiguousAliases::M1,
|
|
AnyAmbiguousAliases::M2,
|
|
AnyAmbiguousAliases::M3,
|
|
];
|
|
|
|
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
|
|
#[repr(transparent)]
|
|
pub struct AnyAmbiguousAliases(pub u8);
|
|
#[allow(non_upper_case_globals)]
|
|
impl AnyAmbiguousAliases {
|
|
pub const NONE: Self = Self(0);
|
|
pub const M1: Self = Self(1);
|
|
pub const M2: Self = Self(2);
|
|
pub const M3: Self = Self(3);
|
|
|
|
pub const ENUM_MIN: u8 = 0;
|
|
pub const ENUM_MAX: u8 = 3;
|
|
pub const ENUM_VALUES: &'static [Self] = &[
|
|
Self::NONE,
|
|
Self::M1,
|
|
Self::M2,
|
|
Self::M3,
|
|
];
|
|
/// Returns the variant's name or "" if unknown.
|
|
pub fn variant_name(self) -> Option<&'static str> {
|
|
match self {
|
|
Self::NONE => Some("NONE"),
|
|
Self::M1 => Some("M1"),
|
|
Self::M2 => Some("M2"),
|
|
Self::M3 => Some("M3"),
|
|
_ => None,
|
|
}
|
|
}
|
|
}
|
|
impl std::fmt::Debug for AnyAmbiguousAliases {
|
|
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!("<UNKNOWN {:?}>", self.0))
|
|
}
|
|
}
|
|
}
|
|
impl<'a> flatbuffers::Follow<'a> for AnyAmbiguousAliases {
|
|
type Inner = Self;
|
|
#[inline]
|
|
fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
|
|
let b = flatbuffers::read_scalar_at::<u8>(buf, loc);
|
|
Self(b)
|
|
}
|
|
}
|
|
|
|
impl flatbuffers::Push for AnyAmbiguousAliases {
|
|
type Output = AnyAmbiguousAliases;
|
|
#[inline]
|
|
fn push(&self, dst: &mut [u8], _rest: &[u8]) {
|
|
flatbuffers::emplace_scalar::<u8>(dst, self.0);
|
|
}
|
|
}
|
|
|
|
impl flatbuffers::EndianScalar for AnyAmbiguousAliases {
|
|
#[inline]
|
|
fn to_little_endian(self) -> Self {
|
|
let b = u8::to_le(self.0);
|
|
Self(b)
|
|
}
|
|
#[inline]
|
|
fn from_little_endian(self) -> Self {
|
|
let b = u8::from_le(self.0);
|
|
Self(b)
|
|
}
|
|
}
|
|
|
|
impl<'a> flatbuffers::Verifiable for AnyAmbiguousAliases {
|
|
#[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 AnyAmbiguousAliases {}
|
|
pub struct AnyAmbiguousAliasesUnionTableOffset {}
|
|
|
|
#[non_exhaustive]
|
|
#[derive(Debug, Clone, PartialEq)]
|
|
pub enum AnyAmbiguousAliasesT {
|
|
NONE,
|
|
M1(Box<MonsterT>),
|
|
M2(Box<MonsterT>),
|
|
M3(Box<MonsterT>),
|
|
}
|
|
impl Default for AnyAmbiguousAliasesT {
|
|
fn default() -> Self {
|
|
Self::NONE
|
|
}
|
|
}
|
|
impl AnyAmbiguousAliasesT {
|
|
pub fn any_ambiguous_aliases_type(&self) -> AnyAmbiguousAliases {
|
|
match self {
|
|
Self::NONE => AnyAmbiguousAliases::NONE,
|
|
Self::M1(_) => AnyAmbiguousAliases::M1,
|
|
Self::M2(_) => AnyAmbiguousAliases::M2,
|
|
Self::M3(_) => AnyAmbiguousAliases::M3,
|
|
}
|
|
}
|
|
pub fn pack(&self, fbb: &mut flatbuffers::FlatBufferBuilder) -> Option<flatbuffers::WIPOffset<flatbuffers::UnionWIPOffset>> {
|
|
match self {
|
|
Self::NONE => None,
|
|
Self::M1(v) => Some(v.pack(fbb).as_union_value()),
|
|
Self::M2(v) => Some(v.pack(fbb).as_union_value()),
|
|
Self::M3(v) => Some(v.pack(fbb).as_union_value()),
|
|
}
|
|
}
|
|
/// If the union variant matches, return the owned MonsterT, setting the union to NONE.
|
|
pub fn take_m1(&mut self) -> Option<Box<MonsterT>> {
|
|
if let Self::M1(_) = self {
|
|
let v = std::mem::replace(self, Self::NONE);
|
|
if let Self::M1(w) = v {
|
|
Some(w)
|
|
} else {
|
|
unreachable!()
|
|
}
|
|
} else {
|
|
None
|
|
}
|
|
}
|
|
/// If the union variant matches, return a reference to the MonsterT.
|
|
pub fn as_m1(&self) -> Option<&MonsterT> {
|
|
if let Self::M1(v) = self { Some(v.as_ref()) } else { None }
|
|
}
|
|
/// If the union variant matches, return a mutable reference to the MonsterT.
|
|
pub fn as_m1_mut(&mut self) -> Option<&mut MonsterT> {
|
|
if let Self::M1(v) = self { Some(v.as_mut()) } else { None }
|
|
}
|
|
/// If the union variant matches, return the owned MonsterT, setting the union to NONE.
|
|
pub fn take_m2(&mut self) -> Option<Box<MonsterT>> {
|
|
if let Self::M2(_) = self {
|
|
let v = std::mem::replace(self, Self::NONE);
|
|
if let Self::M2(w) = v {
|
|
Some(w)
|
|
} else {
|
|
unreachable!()
|
|
}
|
|
} else {
|
|
None
|
|
}
|
|
}
|
|
/// If the union variant matches, return a reference to the MonsterT.
|
|
pub fn as_m2(&self) -> Option<&MonsterT> {
|
|
if let Self::M2(v) = self { Some(v.as_ref()) } else { None }
|
|
}
|
|
/// If the union variant matches, return a mutable reference to the MonsterT.
|
|
pub fn as_m2_mut(&mut self) -> Option<&mut MonsterT> {
|
|
if let Self::M2(v) = self { Some(v.as_mut()) } else { None }
|
|
}
|
|
/// If the union variant matches, return the owned MonsterT, setting the union to NONE.
|
|
pub fn take_m3(&mut self) -> Option<Box<MonsterT>> {
|
|
if let Self::M3(_) = self {
|
|
let v = std::mem::replace(self, Self::NONE);
|
|
if let Self::M3(w) = v {
|
|
Some(w)
|
|
} else {
|
|
unreachable!()
|
|
}
|
|
} else {
|
|
None
|
|
}
|
|
}
|
|
/// If the union variant matches, return a reference to the MonsterT.
|
|
pub fn as_m3(&self) -> Option<&MonsterT> {
|
|
if let Self::M3(v) = self { Some(v.as_ref()) } else { None }
|
|
}
|
|
/// If the union variant matches, return a mutable reference to the MonsterT.
|
|
pub fn as_m3_mut(&mut self) -> Option<&mut MonsterT> {
|
|
if let Self::M3(v) = self { Some(v.as_mut()) } else { None }
|
|
}
|
|
}
|
|
// struct Test, aligned to 2
|
|
#[repr(transparent)]
|
|
#[derive(Clone, Copy, PartialEq, Default)]
|
|
pub struct Test(pub [u8; 4]);
|
|
impl std::fmt::Debug for Test {
|
|
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
|
|
f.debug_struct("Test")
|
|
.field("a", &self.a())
|
|
.field("b", &self.b())
|
|
.finish()
|
|
}
|
|
}
|
|
|
|
impl flatbuffers::SimpleToVerifyInSlice for Test {}
|
|
impl flatbuffers::SafeSliceAccess for Test {}
|
|
impl<'a> flatbuffers::Follow<'a> for Test {
|
|
type Inner = &'a Test;
|
|
#[inline]
|
|
fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
|
|
<&'a Test>::follow(buf, loc)
|
|
}
|
|
}
|
|
impl<'a> flatbuffers::Follow<'a> for &'a Test {
|
|
type Inner = &'a Test;
|
|
#[inline]
|
|
fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
|
|
flatbuffers::follow_cast_ref::<Test>(buf, loc)
|
|
}
|
|
}
|
|
impl<'b> flatbuffers::Push for Test {
|
|
type Output = Test;
|
|
#[inline]
|
|
fn push(&self, dst: &mut [u8], _rest: &[u8]) {
|
|
let src = unsafe {
|
|
::std::slice::from_raw_parts(self as *const Test as *const u8, Self::size())
|
|
};
|
|
dst.copy_from_slice(src);
|
|
}
|
|
}
|
|
impl<'b> flatbuffers::Push for &'b Test {
|
|
type Output = Test;
|
|
|
|
#[inline]
|
|
fn push(&self, dst: &mut [u8], _rest: &[u8]) {
|
|
let src = unsafe {
|
|
::std::slice::from_raw_parts(*self as *const Test as *const u8, Self::size())
|
|
};
|
|
dst.copy_from_slice(src);
|
|
}
|
|
}
|
|
|
|
impl<'a> flatbuffers::Verifiable for Test {
|
|
#[inline]
|
|
fn run_verifier(
|
|
v: &mut flatbuffers::Verifier, pos: usize
|
|
) -> Result<(), flatbuffers::InvalidFlatbuffer> {
|
|
use self::flatbuffers::Verifiable;
|
|
v.in_buffer::<Self>(pos)
|
|
}
|
|
}
|
|
impl Test {
|
|
#[allow(clippy::too_many_arguments)]
|
|
pub fn new(
|
|
a: i16,
|
|
b: i8,
|
|
) -> Self {
|
|
let mut s = Self([0; 4]);
|
|
s.set_a(a);
|
|
s.set_b(b);
|
|
s
|
|
}
|
|
|
|
pub const fn get_fully_qualified_name() -> &'static str {
|
|
"MyGame.Example.Test"
|
|
}
|
|
|
|
pub fn a(&self) -> i16 {
|
|
let mut mem = core::mem::MaybeUninit::<i16>::uninit();
|
|
unsafe {
|
|
core::ptr::copy_nonoverlapping(
|
|
self.0[0..].as_ptr(),
|
|
mem.as_mut_ptr() as *mut u8,
|
|
core::mem::size_of::<i16>(),
|
|
);
|
|
mem.assume_init()
|
|
}.from_little_endian()
|
|
}
|
|
|
|
pub fn set_a(&mut self, x: i16) {
|
|
let x_le = x.to_little_endian();
|
|
unsafe {
|
|
core::ptr::copy_nonoverlapping(
|
|
&x_le as *const i16 as *const u8,
|
|
self.0[0..].as_mut_ptr(),
|
|
core::mem::size_of::<i16>(),
|
|
);
|
|
}
|
|
}
|
|
|
|
pub fn b(&self) -> i8 {
|
|
let mut mem = core::mem::MaybeUninit::<i8>::uninit();
|
|
unsafe {
|
|
core::ptr::copy_nonoverlapping(
|
|
self.0[2..].as_ptr(),
|
|
mem.as_mut_ptr() as *mut u8,
|
|
core::mem::size_of::<i8>(),
|
|
);
|
|
mem.assume_init()
|
|
}.from_little_endian()
|
|
}
|
|
|
|
pub fn set_b(&mut self, x: i8) {
|
|
let x_le = x.to_little_endian();
|
|
unsafe {
|
|
core::ptr::copy_nonoverlapping(
|
|
&x_le as *const i8 as *const u8,
|
|
self.0[2..].as_mut_ptr(),
|
|
core::mem::size_of::<i8>(),
|
|
);
|
|
}
|
|
}
|
|
|
|
pub fn unpack(&self) -> TestT {
|
|
TestT {
|
|
a: self.a(),
|
|
b: self.b(),
|
|
}
|
|
}
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Default)]
|
|
pub struct TestT {
|
|
pub a: i16,
|
|
pub b: i8,
|
|
}
|
|
impl TestT {
|
|
pub fn pack(&self) -> Test {
|
|
Test::new(
|
|
self.a,
|
|
self.b,
|
|
)
|
|
}
|
|
}
|
|
|
|
// struct Vec3, aligned to 8
|
|
#[repr(transparent)]
|
|
#[derive(Clone, Copy, PartialEq, Default)]
|
|
pub struct Vec3(pub [u8; 32]);
|
|
impl std::fmt::Debug for Vec3 {
|
|
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
|
|
f.debug_struct("Vec3")
|
|
.field("x", &self.x())
|
|
.field("y", &self.y())
|
|
.field("z", &self.z())
|
|
.field("test1", &self.test1())
|
|
.field("test2", &self.test2())
|
|
.field("test3", &self.test3())
|
|
.finish()
|
|
}
|
|
}
|
|
|
|
impl flatbuffers::SimpleToVerifyInSlice for Vec3 {}
|
|
impl flatbuffers::SafeSliceAccess for Vec3 {}
|
|
impl<'a> flatbuffers::Follow<'a> for Vec3 {
|
|
type Inner = &'a Vec3;
|
|
#[inline]
|
|
fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
|
|
<&'a Vec3>::follow(buf, loc)
|
|
}
|
|
}
|
|
impl<'a> flatbuffers::Follow<'a> for &'a Vec3 {
|
|
type Inner = &'a Vec3;
|
|
#[inline]
|
|
fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
|
|
flatbuffers::follow_cast_ref::<Vec3>(buf, loc)
|
|
}
|
|
}
|
|
impl<'b> flatbuffers::Push for Vec3 {
|
|
type Output = Vec3;
|
|
#[inline]
|
|
fn push(&self, dst: &mut [u8], _rest: &[u8]) {
|
|
let src = unsafe {
|
|
::std::slice::from_raw_parts(self as *const Vec3 as *const u8, Self::size())
|
|
};
|
|
dst.copy_from_slice(src);
|
|
}
|
|
}
|
|
impl<'b> flatbuffers::Push for &'b Vec3 {
|
|
type Output = Vec3;
|
|
|
|
#[inline]
|
|
fn push(&self, dst: &mut [u8], _rest: &[u8]) {
|
|
let src = unsafe {
|
|
::std::slice::from_raw_parts(*self as *const Vec3 as *const u8, Self::size())
|
|
};
|
|
dst.copy_from_slice(src);
|
|
}
|
|
}
|
|
|
|
impl<'a> flatbuffers::Verifiable for Vec3 {
|
|
#[inline]
|
|
fn run_verifier(
|
|
v: &mut flatbuffers::Verifier, pos: usize
|
|
) -> Result<(), flatbuffers::InvalidFlatbuffer> {
|
|
use self::flatbuffers::Verifiable;
|
|
v.in_buffer::<Self>(pos)
|
|
}
|
|
}
|
|
impl Vec3 {
|
|
#[allow(clippy::too_many_arguments)]
|
|
pub fn new(
|
|
x: f32,
|
|
y: f32,
|
|
z: f32,
|
|
test1: f64,
|
|
test2: Color,
|
|
test3: &Test,
|
|
) -> Self {
|
|
let mut s = Self([0; 32]);
|
|
s.set_x(x);
|
|
s.set_y(y);
|
|
s.set_z(z);
|
|
s.set_test1(test1);
|
|
s.set_test2(test2);
|
|
s.set_test3(&test3);
|
|
s
|
|
}
|
|
|
|
pub const fn get_fully_qualified_name() -> &'static str {
|
|
"MyGame.Example.Vec3"
|
|
}
|
|
|
|
pub fn x(&self) -> f32 {
|
|
let mut mem = core::mem::MaybeUninit::<f32>::uninit();
|
|
unsafe {
|
|
core::ptr::copy_nonoverlapping(
|
|
self.0[0..].as_ptr(),
|
|
mem.as_mut_ptr() as *mut u8,
|
|
core::mem::size_of::<f32>(),
|
|
);
|
|
mem.assume_init()
|
|
}.from_little_endian()
|
|
}
|
|
|
|
pub fn set_x(&mut self, x: f32) {
|
|
let x_le = x.to_little_endian();
|
|
unsafe {
|
|
core::ptr::copy_nonoverlapping(
|
|
&x_le as *const f32 as *const u8,
|
|
self.0[0..].as_mut_ptr(),
|
|
core::mem::size_of::<f32>(),
|
|
);
|
|
}
|
|
}
|
|
|
|
pub fn y(&self) -> f32 {
|
|
let mut mem = core::mem::MaybeUninit::<f32>::uninit();
|
|
unsafe {
|
|
core::ptr::copy_nonoverlapping(
|
|
self.0[4..].as_ptr(),
|
|
mem.as_mut_ptr() as *mut u8,
|
|
core::mem::size_of::<f32>(),
|
|
);
|
|
mem.assume_init()
|
|
}.from_little_endian()
|
|
}
|
|
|
|
pub fn set_y(&mut self, x: f32) {
|
|
let x_le = x.to_little_endian();
|
|
unsafe {
|
|
core::ptr::copy_nonoverlapping(
|
|
&x_le as *const f32 as *const u8,
|
|
self.0[4..].as_mut_ptr(),
|
|
core::mem::size_of::<f32>(),
|
|
);
|
|
}
|
|
}
|
|
|
|
pub fn z(&self) -> f32 {
|
|
let mut mem = core::mem::MaybeUninit::<f32>::uninit();
|
|
unsafe {
|
|
core::ptr::copy_nonoverlapping(
|
|
self.0[8..].as_ptr(),
|
|
mem.as_mut_ptr() as *mut u8,
|
|
core::mem::size_of::<f32>(),
|
|
);
|
|
mem.assume_init()
|
|
}.from_little_endian()
|
|
}
|
|
|
|
pub fn set_z(&mut self, x: f32) {
|
|
let x_le = x.to_little_endian();
|
|
unsafe {
|
|
core::ptr::copy_nonoverlapping(
|
|
&x_le as *const f32 as *const u8,
|
|
self.0[8..].as_mut_ptr(),
|
|
core::mem::size_of::<f32>(),
|
|
);
|
|
}
|
|
}
|
|
|
|
pub fn test1(&self) -> f64 {
|
|
let mut mem = core::mem::MaybeUninit::<f64>::uninit();
|
|
unsafe {
|
|
core::ptr::copy_nonoverlapping(
|
|
self.0[16..].as_ptr(),
|
|
mem.as_mut_ptr() as *mut u8,
|
|
core::mem::size_of::<f64>(),
|
|
);
|
|
mem.assume_init()
|
|
}.from_little_endian()
|
|
}
|
|
|
|
pub fn set_test1(&mut self, x: f64) {
|
|
let x_le = x.to_little_endian();
|
|
unsafe {
|
|
core::ptr::copy_nonoverlapping(
|
|
&x_le as *const f64 as *const u8,
|
|
self.0[16..].as_mut_ptr(),
|
|
core::mem::size_of::<f64>(),
|
|
);
|
|
}
|
|
}
|
|
|
|
pub fn test2(&self) -> Color {
|
|
let mut mem = core::mem::MaybeUninit::<Color>::uninit();
|
|
unsafe {
|
|
core::ptr::copy_nonoverlapping(
|
|
self.0[24..].as_ptr(),
|
|
mem.as_mut_ptr() as *mut u8,
|
|
core::mem::size_of::<Color>(),
|
|
);
|
|
mem.assume_init()
|
|
}.from_little_endian()
|
|
}
|
|
|
|
pub fn set_test2(&mut self, x: Color) {
|
|
let x_le = x.to_little_endian();
|
|
unsafe {
|
|
core::ptr::copy_nonoverlapping(
|
|
&x_le as *const Color as *const u8,
|
|
self.0[24..].as_mut_ptr(),
|
|
core::mem::size_of::<Color>(),
|
|
);
|
|
}
|
|
}
|
|
|
|
pub fn test3(&self) -> &Test {
|
|
unsafe { &*(self.0[26..].as_ptr() as *const Test) }
|
|
}
|
|
|
|
pub fn set_test3(&mut self, x: &Test) {
|
|
self.0[26..26+4].copy_from_slice(&x.0)
|
|
}
|
|
|
|
pub fn unpack(&self) -> Vec3T {
|
|
Vec3T {
|
|
x: self.x(),
|
|
y: self.y(),
|
|
z: self.z(),
|
|
test1: self.test1(),
|
|
test2: self.test2(),
|
|
test3: self.test3().unpack(),
|
|
}
|
|
}
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Default)]
|
|
pub struct Vec3T {
|
|
pub x: f32,
|
|
pub y: f32,
|
|
pub z: f32,
|
|
pub test1: f64,
|
|
pub test2: Color,
|
|
pub test3: TestT,
|
|
}
|
|
impl Vec3T {
|
|
pub fn pack(&self) -> Vec3 {
|
|
Vec3::new(
|
|
self.x,
|
|
self.y,
|
|
self.z,
|
|
self.test1,
|
|
self.test2,
|
|
&self.test3.pack(),
|
|
)
|
|
}
|
|
}
|
|
|
|
// struct Ability, aligned to 4
|
|
#[repr(transparent)]
|
|
#[derive(Clone, Copy, PartialEq, Default)]
|
|
pub struct Ability(pub [u8; 8]);
|
|
impl std::fmt::Debug for Ability {
|
|
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
|
|
f.debug_struct("Ability")
|
|
.field("id", &self.id())
|
|
.field("distance", &self.distance())
|
|
.finish()
|
|
}
|
|
}
|
|
|
|
impl flatbuffers::SimpleToVerifyInSlice for Ability {}
|
|
impl flatbuffers::SafeSliceAccess for Ability {}
|
|
impl<'a> flatbuffers::Follow<'a> for Ability {
|
|
type Inner = &'a Ability;
|
|
#[inline]
|
|
fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
|
|
<&'a Ability>::follow(buf, loc)
|
|
}
|
|
}
|
|
impl<'a> flatbuffers::Follow<'a> for &'a Ability {
|
|
type Inner = &'a Ability;
|
|
#[inline]
|
|
fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
|
|
flatbuffers::follow_cast_ref::<Ability>(buf, loc)
|
|
}
|
|
}
|
|
impl<'b> flatbuffers::Push for Ability {
|
|
type Output = Ability;
|
|
#[inline]
|
|
fn push(&self, dst: &mut [u8], _rest: &[u8]) {
|
|
let src = unsafe {
|
|
::std::slice::from_raw_parts(self as *const Ability as *const u8, Self::size())
|
|
};
|
|
dst.copy_from_slice(src);
|
|
}
|
|
}
|
|
impl<'b> flatbuffers::Push for &'b Ability {
|
|
type Output = Ability;
|
|
|
|
#[inline]
|
|
fn push(&self, dst: &mut [u8], _rest: &[u8]) {
|
|
let src = unsafe {
|
|
::std::slice::from_raw_parts(*self as *const Ability as *const u8, Self::size())
|
|
};
|
|
dst.copy_from_slice(src);
|
|
}
|
|
}
|
|
|
|
impl<'a> flatbuffers::Verifiable for Ability {
|
|
#[inline]
|
|
fn run_verifier(
|
|
v: &mut flatbuffers::Verifier, pos: usize
|
|
) -> Result<(), flatbuffers::InvalidFlatbuffer> {
|
|
use self::flatbuffers::Verifiable;
|
|
v.in_buffer::<Self>(pos)
|
|
}
|
|
}
|
|
impl Ability {
|
|
#[allow(clippy::too_many_arguments)]
|
|
pub fn new(
|
|
id: u32,
|
|
distance: u32,
|
|
) -> Self {
|
|
let mut s = Self([0; 8]);
|
|
s.set_id(id);
|
|
s.set_distance(distance);
|
|
s
|
|
}
|
|
|
|
pub const fn get_fully_qualified_name() -> &'static str {
|
|
"MyGame.Example.Ability"
|
|
}
|
|
|
|
pub fn id(&self) -> u32 {
|
|
let mut mem = core::mem::MaybeUninit::<u32>::uninit();
|
|
unsafe {
|
|
core::ptr::copy_nonoverlapping(
|
|
self.0[0..].as_ptr(),
|
|
mem.as_mut_ptr() as *mut u8,
|
|
core::mem::size_of::<u32>(),
|
|
);
|
|
mem.assume_init()
|
|
}.from_little_endian()
|
|
}
|
|
|
|
pub fn set_id(&mut self, x: u32) {
|
|
let x_le = x.to_little_endian();
|
|
unsafe {
|
|
core::ptr::copy_nonoverlapping(
|
|
&x_le as *const u32 as *const u8,
|
|
self.0[0..].as_mut_ptr(),
|
|
core::mem::size_of::<u32>(),
|
|
);
|
|
}
|
|
}
|
|
|
|
#[inline]
|
|
pub fn key_compare_less_than(&self, o: &Ability) -> bool {
|
|
self.id() < o.id()
|
|
}
|
|
|
|
#[inline]
|
|
pub fn key_compare_with_value(&self, val: u32) -> ::std::cmp::Ordering {
|
|
let key = self.id();
|
|
key.cmp(&val)
|
|
}
|
|
pub fn distance(&self) -> u32 {
|
|
let mut mem = core::mem::MaybeUninit::<u32>::uninit();
|
|
unsafe {
|
|
core::ptr::copy_nonoverlapping(
|
|
self.0[4..].as_ptr(),
|
|
mem.as_mut_ptr() as *mut u8,
|
|
core::mem::size_of::<u32>(),
|
|
);
|
|
mem.assume_init()
|
|
}.from_little_endian()
|
|
}
|
|
|
|
pub fn set_distance(&mut self, x: u32) {
|
|
let x_le = x.to_little_endian();
|
|
unsafe {
|
|
core::ptr::copy_nonoverlapping(
|
|
&x_le as *const u32 as *const u8,
|
|
self.0[4..].as_mut_ptr(),
|
|
core::mem::size_of::<u32>(),
|
|
);
|
|
}
|
|
}
|
|
|
|
pub fn unpack(&self) -> AbilityT {
|
|
AbilityT {
|
|
id: self.id(),
|
|
distance: self.distance(),
|
|
}
|
|
}
|
|
}
|
|
|
|
#[derive(Debug, Clone, PartialEq, Default)]
|
|
pub struct AbilityT {
|
|
pub id: u32,
|
|
pub distance: u32,
|
|
}
|
|
impl AbilityT {
|
|
pub fn pack(&self) -> Ability {
|
|
Ability::new(
|
|
self.id,
|
|
self.distance,
|
|
)
|
|
}
|
|
}
|
|
|
|
pub enum TestSimpleTableWithEnumOffset {}
|
|
#[derive(Copy, Clone, PartialEq)]
|
|
|
|
pub struct TestSimpleTableWithEnum<'a> {
|
|
pub _tab: flatbuffers::Table<'a>,
|
|
}
|
|
|
|
impl<'a> flatbuffers::Follow<'a> for TestSimpleTableWithEnum<'a> {
|
|
type Inner = TestSimpleTableWithEnum<'a>;
|
|
#[inline]
|
|
fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
|
|
Self { _tab: flatbuffers::Table { buf, loc } }
|
|
}
|
|
}
|
|
|
|
impl<'a> TestSimpleTableWithEnum<'a> {
|
|
pub const fn get_fully_qualified_name() -> &'static str {
|
|
"MyGame.Example.TestSimpleTableWithEnum"
|
|
}
|
|
|
|
#[inline]
|
|
pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
|
|
TestSimpleTableWithEnum { _tab: table }
|
|
}
|
|
#[allow(unused_mut)]
|
|
pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>(
|
|
_fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>,
|
|
args: &'args TestSimpleTableWithEnumArgs) -> flatbuffers::WIPOffset<TestSimpleTableWithEnum<'bldr>> {
|
|
let mut builder = TestSimpleTableWithEnumBuilder::new(_fbb);
|
|
builder.add_color(args.color);
|
|
builder.finish()
|
|
}
|
|
|
|
pub fn unpack(&self) -> TestSimpleTableWithEnumT {
|
|
let color = self.color();
|
|
TestSimpleTableWithEnumT {
|
|
color,
|
|
}
|
|
}
|
|
pub const VT_COLOR: flatbuffers::VOffsetT = 4;
|
|
|
|
#[inline]
|
|
pub fn color(&self) -> Color {
|
|
self._tab.get::<Color>(TestSimpleTableWithEnum::VT_COLOR, Some(Color::Green)).unwrap()
|
|
}
|
|
}
|
|
|
|
impl flatbuffers::Verifiable for TestSimpleTableWithEnum<'_> {
|
|
#[inline]
|
|
fn run_verifier(
|
|
v: &mut flatbuffers::Verifier, pos: usize
|
|
) -> Result<(), flatbuffers::InvalidFlatbuffer> {
|
|
use self::flatbuffers::Verifiable;
|
|
v.visit_table(pos)?
|
|
.visit_field::<Color>(&"color", Self::VT_COLOR, false)?
|
|
.finish();
|
|
Ok(())
|
|
}
|
|
}
|
|
pub struct TestSimpleTableWithEnumArgs {
|
|
pub color: Color,
|
|
}
|
|
impl<'a> Default for TestSimpleTableWithEnumArgs {
|
|
#[inline]
|
|
fn default() -> Self {
|
|
TestSimpleTableWithEnumArgs {
|
|
color: Color::Green,
|
|
}
|
|
}
|
|
}
|
|
pub struct TestSimpleTableWithEnumBuilder<'a: 'b, 'b> {
|
|
fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>,
|
|
start_: flatbuffers::WIPOffset<flatbuffers::TableUnfinishedWIPOffset>,
|
|
}
|
|
impl<'a: 'b, 'b> TestSimpleTableWithEnumBuilder<'a, 'b> {
|
|
#[inline]
|
|
pub fn add_color(&mut self, color: Color) {
|
|
self.fbb_.push_slot::<Color>(TestSimpleTableWithEnum::VT_COLOR, color, Color::Green);
|
|
}
|
|
#[inline]
|
|
pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> TestSimpleTableWithEnumBuilder<'a, 'b> {
|
|
let start = _fbb.start_table();
|
|
TestSimpleTableWithEnumBuilder {
|
|
fbb_: _fbb,
|
|
start_: start,
|
|
}
|
|
}
|
|
#[inline]
|
|
pub fn finish(self) -> flatbuffers::WIPOffset<TestSimpleTableWithEnum<'a>> {
|
|
let o = self.fbb_.end_table(self.start_);
|
|
flatbuffers::WIPOffset::new(o.value())
|
|
}
|
|
}
|
|
|
|
impl std::fmt::Debug for TestSimpleTableWithEnum<'_> {
|
|
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
|
let mut ds = f.debug_struct("TestSimpleTableWithEnum");
|
|
ds.field("color", &self.color());
|
|
ds.finish()
|
|
}
|
|
}
|
|
#[non_exhaustive]
|
|
#[derive(Debug, Clone, PartialEq)]
|
|
pub struct TestSimpleTableWithEnumT {
|
|
pub color: Color,
|
|
}
|
|
impl Default for TestSimpleTableWithEnumT {
|
|
fn default() -> Self {
|
|
Self {
|
|
color: Color::Green,
|
|
}
|
|
}
|
|
}
|
|
impl TestSimpleTableWithEnumT {
|
|
pub fn pack<'b>(
|
|
&self,
|
|
_fbb: &mut flatbuffers::FlatBufferBuilder<'b>
|
|
) -> flatbuffers::WIPOffset<TestSimpleTableWithEnum<'b>> {
|
|
let color = self.color;
|
|
TestSimpleTableWithEnum::create(_fbb, &TestSimpleTableWithEnumArgs{
|
|
color,
|
|
})
|
|
}
|
|
}
|
|
pub enum StatOffset {}
|
|
#[derive(Copy, Clone, PartialEq)]
|
|
|
|
pub struct Stat<'a> {
|
|
pub _tab: flatbuffers::Table<'a>,
|
|
}
|
|
|
|
impl<'a> flatbuffers::Follow<'a> for Stat<'a> {
|
|
type Inner = Stat<'a>;
|
|
#[inline]
|
|
fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
|
|
Self { _tab: flatbuffers::Table { buf, loc } }
|
|
}
|
|
}
|
|
|
|
impl<'a> Stat<'a> {
|
|
pub const fn get_fully_qualified_name() -> &'static str {
|
|
"MyGame.Example.Stat"
|
|
}
|
|
|
|
#[inline]
|
|
pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
|
|
Stat { _tab: table }
|
|
}
|
|
#[allow(unused_mut)]
|
|
pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>(
|
|
_fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>,
|
|
args: &'args StatArgs<'args>) -> flatbuffers::WIPOffset<Stat<'bldr>> {
|
|
let mut builder = StatBuilder::new(_fbb);
|
|
builder.add_val(args.val);
|
|
if let Some(x) = args.id { builder.add_id(x); }
|
|
builder.add_count(args.count);
|
|
builder.finish()
|
|
}
|
|
|
|
pub fn unpack(&self) -> StatT {
|
|
let id = self.id().map(|x| {
|
|
x.to_string()
|
|
});
|
|
let val = self.val();
|
|
let count = self.count();
|
|
StatT {
|
|
id,
|
|
val,
|
|
count,
|
|
}
|
|
}
|
|
pub const VT_ID: flatbuffers::VOffsetT = 4;
|
|
pub const VT_VAL: flatbuffers::VOffsetT = 6;
|
|
pub const VT_COUNT: flatbuffers::VOffsetT = 8;
|
|
|
|
#[inline]
|
|
pub fn id(&self) -> Option<&'a str> {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(Stat::VT_ID, None)
|
|
}
|
|
#[inline]
|
|
pub fn val(&self) -> i64 {
|
|
self._tab.get::<i64>(Stat::VT_VAL, Some(0)).unwrap()
|
|
}
|
|
#[inline]
|
|
pub fn count(&self) -> u16 {
|
|
self._tab.get::<u16>(Stat::VT_COUNT, Some(0)).unwrap()
|
|
}
|
|
#[inline]
|
|
pub fn key_compare_less_than(&self, o: &Stat) -> bool {
|
|
self.count() < o.count()
|
|
}
|
|
|
|
#[inline]
|
|
pub fn key_compare_with_value(&self, val: u16) -> ::std::cmp::Ordering {
|
|
let key = self.count();
|
|
key.cmp(&val)
|
|
}
|
|
}
|
|
|
|
impl flatbuffers::Verifiable for Stat<'_> {
|
|
#[inline]
|
|
fn run_verifier(
|
|
v: &mut flatbuffers::Verifier, pos: usize
|
|
) -> Result<(), flatbuffers::InvalidFlatbuffer> {
|
|
use self::flatbuffers::Verifiable;
|
|
v.visit_table(pos)?
|
|
.visit_field::<flatbuffers::ForwardsUOffset<&str>>(&"id", Self::VT_ID, false)?
|
|
.visit_field::<i64>(&"val", Self::VT_VAL, false)?
|
|
.visit_field::<u16>(&"count", Self::VT_COUNT, false)?
|
|
.finish();
|
|
Ok(())
|
|
}
|
|
}
|
|
pub struct StatArgs<'a> {
|
|
pub id: Option<flatbuffers::WIPOffset<&'a str>>,
|
|
pub val: i64,
|
|
pub count: u16,
|
|
}
|
|
impl<'a> Default for StatArgs<'a> {
|
|
#[inline]
|
|
fn default() -> Self {
|
|
StatArgs {
|
|
id: None,
|
|
val: 0,
|
|
count: 0,
|
|
}
|
|
}
|
|
}
|
|
pub struct StatBuilder<'a: 'b, 'b> {
|
|
fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>,
|
|
start_: flatbuffers::WIPOffset<flatbuffers::TableUnfinishedWIPOffset>,
|
|
}
|
|
impl<'a: 'b, 'b> StatBuilder<'a, 'b> {
|
|
#[inline]
|
|
pub fn add_id(&mut self, id: flatbuffers::WIPOffset<&'b str>) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Stat::VT_ID, id);
|
|
}
|
|
#[inline]
|
|
pub fn add_val(&mut self, val: i64) {
|
|
self.fbb_.push_slot::<i64>(Stat::VT_VAL, val, 0);
|
|
}
|
|
#[inline]
|
|
pub fn add_count(&mut self, count: u16) {
|
|
self.fbb_.push_slot::<u16>(Stat::VT_COUNT, count, 0);
|
|
}
|
|
#[inline]
|
|
pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> StatBuilder<'a, 'b> {
|
|
let start = _fbb.start_table();
|
|
StatBuilder {
|
|
fbb_: _fbb,
|
|
start_: start,
|
|
}
|
|
}
|
|
#[inline]
|
|
pub fn finish(self) -> flatbuffers::WIPOffset<Stat<'a>> {
|
|
let o = self.fbb_.end_table(self.start_);
|
|
flatbuffers::WIPOffset::new(o.value())
|
|
}
|
|
}
|
|
|
|
impl std::fmt::Debug for Stat<'_> {
|
|
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
|
let mut ds = f.debug_struct("Stat");
|
|
ds.field("id", &self.id());
|
|
ds.field("val", &self.val());
|
|
ds.field("count", &self.count());
|
|
ds.finish()
|
|
}
|
|
}
|
|
#[non_exhaustive]
|
|
#[derive(Debug, Clone, PartialEq)]
|
|
pub struct StatT {
|
|
pub id: Option<String>,
|
|
pub val: i64,
|
|
pub count: u16,
|
|
}
|
|
impl Default for StatT {
|
|
fn default() -> Self {
|
|
Self {
|
|
id: None,
|
|
val: 0,
|
|
count: 0,
|
|
}
|
|
}
|
|
}
|
|
impl StatT {
|
|
pub fn pack<'b>(
|
|
&self,
|
|
_fbb: &mut flatbuffers::FlatBufferBuilder<'b>
|
|
) -> flatbuffers::WIPOffset<Stat<'b>> {
|
|
let id = self.id.as_ref().map(|x|{
|
|
_fbb.create_string(x)
|
|
});
|
|
let val = self.val;
|
|
let count = self.count;
|
|
Stat::create(_fbb, &StatArgs{
|
|
id,
|
|
val,
|
|
count,
|
|
})
|
|
}
|
|
}
|
|
pub enum ReferrableOffset {}
|
|
#[derive(Copy, Clone, PartialEq)]
|
|
|
|
pub struct Referrable<'a> {
|
|
pub _tab: flatbuffers::Table<'a>,
|
|
}
|
|
|
|
impl<'a> flatbuffers::Follow<'a> for Referrable<'a> {
|
|
type Inner = Referrable<'a>;
|
|
#[inline]
|
|
fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
|
|
Self { _tab: flatbuffers::Table { buf, loc } }
|
|
}
|
|
}
|
|
|
|
impl<'a> Referrable<'a> {
|
|
pub const fn get_fully_qualified_name() -> &'static str {
|
|
"MyGame.Example.Referrable"
|
|
}
|
|
|
|
#[inline]
|
|
pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
|
|
Referrable { _tab: table }
|
|
}
|
|
#[allow(unused_mut)]
|
|
pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>(
|
|
_fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>,
|
|
args: &'args ReferrableArgs) -> flatbuffers::WIPOffset<Referrable<'bldr>> {
|
|
let mut builder = ReferrableBuilder::new(_fbb);
|
|
builder.add_id(args.id);
|
|
builder.finish()
|
|
}
|
|
|
|
pub fn unpack(&self) -> ReferrableT {
|
|
let id = self.id();
|
|
ReferrableT {
|
|
id,
|
|
}
|
|
}
|
|
pub const VT_ID: flatbuffers::VOffsetT = 4;
|
|
|
|
#[inline]
|
|
pub fn id(&self) -> u64 {
|
|
self._tab.get::<u64>(Referrable::VT_ID, Some(0)).unwrap()
|
|
}
|
|
#[inline]
|
|
pub fn key_compare_less_than(&self, o: &Referrable) -> bool {
|
|
self.id() < o.id()
|
|
}
|
|
|
|
#[inline]
|
|
pub fn key_compare_with_value(&self, val: u64) -> ::std::cmp::Ordering {
|
|
let key = self.id();
|
|
key.cmp(&val)
|
|
}
|
|
}
|
|
|
|
impl flatbuffers::Verifiable for Referrable<'_> {
|
|
#[inline]
|
|
fn run_verifier(
|
|
v: &mut flatbuffers::Verifier, pos: usize
|
|
) -> Result<(), flatbuffers::InvalidFlatbuffer> {
|
|
use self::flatbuffers::Verifiable;
|
|
v.visit_table(pos)?
|
|
.visit_field::<u64>(&"id", Self::VT_ID, false)?
|
|
.finish();
|
|
Ok(())
|
|
}
|
|
}
|
|
pub struct ReferrableArgs {
|
|
pub id: u64,
|
|
}
|
|
impl<'a> Default for ReferrableArgs {
|
|
#[inline]
|
|
fn default() -> Self {
|
|
ReferrableArgs {
|
|
id: 0,
|
|
}
|
|
}
|
|
}
|
|
pub struct ReferrableBuilder<'a: 'b, 'b> {
|
|
fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>,
|
|
start_: flatbuffers::WIPOffset<flatbuffers::TableUnfinishedWIPOffset>,
|
|
}
|
|
impl<'a: 'b, 'b> ReferrableBuilder<'a, 'b> {
|
|
#[inline]
|
|
pub fn add_id(&mut self, id: u64) {
|
|
self.fbb_.push_slot::<u64>(Referrable::VT_ID, id, 0);
|
|
}
|
|
#[inline]
|
|
pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> ReferrableBuilder<'a, 'b> {
|
|
let start = _fbb.start_table();
|
|
ReferrableBuilder {
|
|
fbb_: _fbb,
|
|
start_: start,
|
|
}
|
|
}
|
|
#[inline]
|
|
pub fn finish(self) -> flatbuffers::WIPOffset<Referrable<'a>> {
|
|
let o = self.fbb_.end_table(self.start_);
|
|
flatbuffers::WIPOffset::new(o.value())
|
|
}
|
|
}
|
|
|
|
impl std::fmt::Debug for Referrable<'_> {
|
|
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
|
let mut ds = f.debug_struct("Referrable");
|
|
ds.field("id", &self.id());
|
|
ds.finish()
|
|
}
|
|
}
|
|
#[non_exhaustive]
|
|
#[derive(Debug, Clone, PartialEq)]
|
|
pub struct ReferrableT {
|
|
pub id: u64,
|
|
}
|
|
impl Default for ReferrableT {
|
|
fn default() -> Self {
|
|
Self {
|
|
id: 0,
|
|
}
|
|
}
|
|
}
|
|
impl ReferrableT {
|
|
pub fn pack<'b>(
|
|
&self,
|
|
_fbb: &mut flatbuffers::FlatBufferBuilder<'b>
|
|
) -> flatbuffers::WIPOffset<Referrable<'b>> {
|
|
let id = self.id;
|
|
Referrable::create(_fbb, &ReferrableArgs{
|
|
id,
|
|
})
|
|
}
|
|
}
|
|
pub enum MonsterOffset {}
|
|
#[derive(Copy, Clone, PartialEq)]
|
|
|
|
/// an example documentation comment: "monster object"
|
|
pub struct Monster<'a> {
|
|
pub _tab: flatbuffers::Table<'a>,
|
|
}
|
|
|
|
impl<'a> flatbuffers::Follow<'a> for Monster<'a> {
|
|
type Inner = Monster<'a>;
|
|
#[inline]
|
|
fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
|
|
Self { _tab: flatbuffers::Table { buf, loc } }
|
|
}
|
|
}
|
|
|
|
impl<'a> Monster<'a> {
|
|
pub const fn get_fully_qualified_name() -> &'static str {
|
|
"MyGame.Example.Monster"
|
|
}
|
|
|
|
#[inline]
|
|
pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
|
|
Monster { _tab: table }
|
|
}
|
|
#[allow(unused_mut)]
|
|
pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>(
|
|
_fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>,
|
|
args: &'args MonsterArgs<'args>) -> flatbuffers::WIPOffset<Monster<'bldr>> {
|
|
let mut builder = MonsterBuilder::new(_fbb);
|
|
builder.add_non_owning_reference(args.non_owning_reference);
|
|
builder.add_co_owning_reference(args.co_owning_reference);
|
|
builder.add_single_weak_reference(args.single_weak_reference);
|
|
builder.add_testhashu64_fnv1a(args.testhashu64_fnv1a);
|
|
builder.add_testhashs64_fnv1a(args.testhashs64_fnv1a);
|
|
builder.add_testhashu64_fnv1(args.testhashu64_fnv1);
|
|
builder.add_testhashs64_fnv1(args.testhashs64_fnv1);
|
|
if let Some(x) = args.scalar_key_sorted_tables { builder.add_scalar_key_sorted_tables(x); }
|
|
if let Some(x) = args.testrequirednestedflatbuffer { builder.add_testrequirednestedflatbuffer(x); }
|
|
if let Some(x) = args.vector_of_enums { builder.add_vector_of_enums(x); }
|
|
if let Some(x) = args.any_ambiguous { builder.add_any_ambiguous(x); }
|
|
if let Some(x) = args.any_unique { builder.add_any_unique(x); }
|
|
if let Some(x) = args.vector_of_non_owning_references { builder.add_vector_of_non_owning_references(x); }
|
|
if let Some(x) = args.vector_of_co_owning_references { builder.add_vector_of_co_owning_references(x); }
|
|
if let Some(x) = args.vector_of_strong_referrables { builder.add_vector_of_strong_referrables(x); }
|
|
if let Some(x) = args.vector_of_weak_references { builder.add_vector_of_weak_references(x); }
|
|
if let Some(x) = args.vector_of_referrables { builder.add_vector_of_referrables(x); }
|
|
if let Some(x) = args.parent_namespace_test { builder.add_parent_namespace_test(x); }
|
|
if let Some(x) = args.vector_of_doubles { builder.add_vector_of_doubles(x); }
|
|
if let Some(x) = args.vector_of_longs { builder.add_vector_of_longs(x); }
|
|
if let Some(x) = args.test5 { builder.add_test5(x); }
|
|
if let Some(x) = args.flex { builder.add_flex(x); }
|
|
if let Some(x) = args.testarrayofsortedstruct { builder.add_testarrayofsortedstruct(x); }
|
|
if let Some(x) = args.testarrayofstring2 { builder.add_testarrayofstring2(x); }
|
|
builder.add_testf3(args.testf3);
|
|
builder.add_testf2(args.testf2);
|
|
builder.add_testf(args.testf);
|
|
if let Some(x) = args.testarrayofbools { builder.add_testarrayofbools(x); }
|
|
builder.add_testhashu32_fnv1a(args.testhashu32_fnv1a);
|
|
builder.add_testhashs32_fnv1a(args.testhashs32_fnv1a);
|
|
builder.add_testhashu32_fnv1(args.testhashu32_fnv1);
|
|
builder.add_testhashs32_fnv1(args.testhashs32_fnv1);
|
|
if let Some(x) = args.testempty { builder.add_testempty(x); }
|
|
if let Some(x) = args.testnestedflatbuffer { builder.add_testnestedflatbuffer(x); }
|
|
if let Some(x) = args.enemy { builder.add_enemy(x); }
|
|
if let Some(x) = args.testarrayoftables { builder.add_testarrayoftables(x); }
|
|
if let Some(x) = args.testarrayofstring { builder.add_testarrayofstring(x); }
|
|
if let Some(x) = args.test4 { builder.add_test4(x); }
|
|
if let Some(x) = args.test { builder.add_test(x); }
|
|
if let Some(x) = args.inventory { builder.add_inventory(x); }
|
|
if let Some(x) = args.name { builder.add_name(x); }
|
|
if let Some(x) = args.pos { builder.add_pos(x); }
|
|
builder.add_hp(args.hp);
|
|
builder.add_mana(args.mana);
|
|
builder.add_signed_enum(args.signed_enum);
|
|
builder.add_any_ambiguous_type(args.any_ambiguous_type);
|
|
builder.add_any_unique_type(args.any_unique_type);
|
|
builder.add_testbool(args.testbool);
|
|
builder.add_test_type(args.test_type);
|
|
builder.add_color(args.color);
|
|
builder.finish()
|
|
}
|
|
|
|
pub fn unpack(&self) -> MonsterT {
|
|
let pos = self.pos().map(|x| {
|
|
x.unpack()
|
|
});
|
|
let mana = self.mana();
|
|
let hp = self.hp();
|
|
let name = {
|
|
let x = self.name();
|
|
x.to_string()
|
|
};
|
|
let inventory = self.inventory().map(|x| {
|
|
x.to_vec()
|
|
});
|
|
let color = self.color();
|
|
let test = match self.test_type() {
|
|
Any::NONE => AnyT::NONE,
|
|
Any::Monster => AnyT::Monster(Box::new(
|
|
self.test_as_monster()
|
|
.expect("Invalid union table, expected `Any::Monster`.")
|
|
.unpack()
|
|
)),
|
|
Any::TestSimpleTableWithEnum => AnyT::TestSimpleTableWithEnum(Box::new(
|
|
self.test_as_test_simple_table_with_enum()
|
|
.expect("Invalid union table, expected `Any::TestSimpleTableWithEnum`.")
|
|
.unpack()
|
|
)),
|
|
Any::MyGame_Example2_Monster => AnyT::MyGameExample2Monster(Box::new(
|
|
self.test_as_my_game_example_2_monster()
|
|
.expect("Invalid union table, expected `Any::MyGame_Example2_Monster`.")
|
|
.unpack()
|
|
)),
|
|
_ => AnyT::NONE,
|
|
};
|
|
let test4 = self.test4().map(|x| {
|
|
x.iter().map(|t| t.unpack()).collect()
|
|
});
|
|
let testarrayofstring = self.testarrayofstring().map(|x| {
|
|
x.iter().map(|s| s.to_string()).collect()
|
|
});
|
|
let testarrayoftables = self.testarrayoftables().map(|x| {
|
|
x.iter().map(|t| t.unpack()).collect()
|
|
});
|
|
let enemy = self.enemy().map(|x| {
|
|
Box::new(x.unpack())
|
|
});
|
|
let testnestedflatbuffer = self.testnestedflatbuffer().map(|x| {
|
|
x.to_vec()
|
|
});
|
|
let testempty = self.testempty().map(|x| {
|
|
Box::new(x.unpack())
|
|
});
|
|
let testbool = self.testbool();
|
|
let testhashs32_fnv1 = self.testhashs32_fnv1();
|
|
let testhashu32_fnv1 = self.testhashu32_fnv1();
|
|
let testhashs64_fnv1 = self.testhashs64_fnv1();
|
|
let testhashu64_fnv1 = self.testhashu64_fnv1();
|
|
let testhashs32_fnv1a = self.testhashs32_fnv1a();
|
|
let testhashu32_fnv1a = self.testhashu32_fnv1a();
|
|
let testhashs64_fnv1a = self.testhashs64_fnv1a();
|
|
let testhashu64_fnv1a = self.testhashu64_fnv1a();
|
|
let testarrayofbools = self.testarrayofbools().map(|x| {
|
|
x.to_vec()
|
|
});
|
|
let testf = self.testf();
|
|
let testf2 = self.testf2();
|
|
let testf3 = self.testf3();
|
|
let testarrayofstring2 = self.testarrayofstring2().map(|x| {
|
|
x.iter().map(|s| s.to_string()).collect()
|
|
});
|
|
let testarrayofsortedstruct = self.testarrayofsortedstruct().map(|x| {
|
|
x.iter().map(|t| t.unpack()).collect()
|
|
});
|
|
let flex = self.flex().map(|x| {
|
|
x.to_vec()
|
|
});
|
|
let test5 = self.test5().map(|x| {
|
|
x.iter().map(|t| t.unpack()).collect()
|
|
});
|
|
let vector_of_longs = self.vector_of_longs().map(|x| {
|
|
x.into_iter().collect()
|
|
});
|
|
let vector_of_doubles = self.vector_of_doubles().map(|x| {
|
|
x.into_iter().collect()
|
|
});
|
|
let parent_namespace_test = self.parent_namespace_test().map(|x| {
|
|
Box::new(x.unpack())
|
|
});
|
|
let vector_of_referrables = self.vector_of_referrables().map(|x| {
|
|
x.iter().map(|t| t.unpack()).collect()
|
|
});
|
|
let single_weak_reference = self.single_weak_reference();
|
|
let vector_of_weak_references = self.vector_of_weak_references().map(|x| {
|
|
x.into_iter().collect()
|
|
});
|
|
let vector_of_strong_referrables = self.vector_of_strong_referrables().map(|x| {
|
|
x.iter().map(|t| t.unpack()).collect()
|
|
});
|
|
let co_owning_reference = self.co_owning_reference();
|
|
let vector_of_co_owning_references = self.vector_of_co_owning_references().map(|x| {
|
|
x.into_iter().collect()
|
|
});
|
|
let non_owning_reference = self.non_owning_reference();
|
|
let vector_of_non_owning_references = self.vector_of_non_owning_references().map(|x| {
|
|
x.into_iter().collect()
|
|
});
|
|
let any_unique = match self.any_unique_type() {
|
|
AnyUniqueAliases::NONE => AnyUniqueAliasesT::NONE,
|
|
AnyUniqueAliases::M => AnyUniqueAliasesT::M(Box::new(
|
|
self.any_unique_as_m()
|
|
.expect("Invalid union table, expected `AnyUniqueAliases::M`.")
|
|
.unpack()
|
|
)),
|
|
AnyUniqueAliases::TS => AnyUniqueAliasesT::TS(Box::new(
|
|
self.any_unique_as_ts()
|
|
.expect("Invalid union table, expected `AnyUniqueAliases::TS`.")
|
|
.unpack()
|
|
)),
|
|
AnyUniqueAliases::M2 => AnyUniqueAliasesT::M2(Box::new(
|
|
self.any_unique_as_m2()
|
|
.expect("Invalid union table, expected `AnyUniqueAliases::M2`.")
|
|
.unpack()
|
|
)),
|
|
_ => AnyUniqueAliasesT::NONE,
|
|
};
|
|
let any_ambiguous = match self.any_ambiguous_type() {
|
|
AnyAmbiguousAliases::NONE => AnyAmbiguousAliasesT::NONE,
|
|
AnyAmbiguousAliases::M1 => AnyAmbiguousAliasesT::M1(Box::new(
|
|
self.any_ambiguous_as_m1()
|
|
.expect("Invalid union table, expected `AnyAmbiguousAliases::M1`.")
|
|
.unpack()
|
|
)),
|
|
AnyAmbiguousAliases::M2 => AnyAmbiguousAliasesT::M2(Box::new(
|
|
self.any_ambiguous_as_m2()
|
|
.expect("Invalid union table, expected `AnyAmbiguousAliases::M2`.")
|
|
.unpack()
|
|
)),
|
|
AnyAmbiguousAliases::M3 => AnyAmbiguousAliasesT::M3(Box::new(
|
|
self.any_ambiguous_as_m3()
|
|
.expect("Invalid union table, expected `AnyAmbiguousAliases::M3`.")
|
|
.unpack()
|
|
)),
|
|
_ => AnyAmbiguousAliasesT::NONE,
|
|
};
|
|
let vector_of_enums = self.vector_of_enums().map(|x| {
|
|
x.into_iter().collect()
|
|
});
|
|
let signed_enum = self.signed_enum();
|
|
let testrequirednestedflatbuffer = self.testrequirednestedflatbuffer().map(|x| {
|
|
x.to_vec()
|
|
});
|
|
let scalar_key_sorted_tables = self.scalar_key_sorted_tables().map(|x| {
|
|
x.iter().map(|t| t.unpack()).collect()
|
|
});
|
|
MonsterT {
|
|
pos,
|
|
mana,
|
|
hp,
|
|
name,
|
|
inventory,
|
|
color,
|
|
test,
|
|
test4,
|
|
testarrayofstring,
|
|
testarrayoftables,
|
|
enemy,
|
|
testnestedflatbuffer,
|
|
testempty,
|
|
testbool,
|
|
testhashs32_fnv1,
|
|
testhashu32_fnv1,
|
|
testhashs64_fnv1,
|
|
testhashu64_fnv1,
|
|
testhashs32_fnv1a,
|
|
testhashu32_fnv1a,
|
|
testhashs64_fnv1a,
|
|
testhashu64_fnv1a,
|
|
testarrayofbools,
|
|
testf,
|
|
testf2,
|
|
testf3,
|
|
testarrayofstring2,
|
|
testarrayofsortedstruct,
|
|
flex,
|
|
test5,
|
|
vector_of_longs,
|
|
vector_of_doubles,
|
|
parent_namespace_test,
|
|
vector_of_referrables,
|
|
single_weak_reference,
|
|
vector_of_weak_references,
|
|
vector_of_strong_referrables,
|
|
co_owning_reference,
|
|
vector_of_co_owning_references,
|
|
non_owning_reference,
|
|
vector_of_non_owning_references,
|
|
any_unique,
|
|
any_ambiguous,
|
|
vector_of_enums,
|
|
signed_enum,
|
|
testrequirednestedflatbuffer,
|
|
scalar_key_sorted_tables,
|
|
}
|
|
}
|
|
pub const VT_POS: flatbuffers::VOffsetT = 4;
|
|
pub const VT_MANA: flatbuffers::VOffsetT = 6;
|
|
pub const VT_HP: flatbuffers::VOffsetT = 8;
|
|
pub const VT_NAME: flatbuffers::VOffsetT = 10;
|
|
pub const VT_INVENTORY: flatbuffers::VOffsetT = 14;
|
|
pub const VT_COLOR: flatbuffers::VOffsetT = 16;
|
|
pub const VT_TEST_TYPE: flatbuffers::VOffsetT = 18;
|
|
pub const VT_TEST: flatbuffers::VOffsetT = 20;
|
|
pub const VT_TEST4: flatbuffers::VOffsetT = 22;
|
|
pub const VT_TESTARRAYOFSTRING: flatbuffers::VOffsetT = 24;
|
|
pub const VT_TESTARRAYOFTABLES: flatbuffers::VOffsetT = 26;
|
|
pub const VT_ENEMY: flatbuffers::VOffsetT = 28;
|
|
pub const VT_TESTNESTEDFLATBUFFER: flatbuffers::VOffsetT = 30;
|
|
pub const VT_TESTEMPTY: flatbuffers::VOffsetT = 32;
|
|
pub const VT_TESTBOOL: flatbuffers::VOffsetT = 34;
|
|
pub const VT_TESTHASHS32_FNV1: flatbuffers::VOffsetT = 36;
|
|
pub const VT_TESTHASHU32_FNV1: flatbuffers::VOffsetT = 38;
|
|
pub const VT_TESTHASHS64_FNV1: flatbuffers::VOffsetT = 40;
|
|
pub const VT_TESTHASHU64_FNV1: flatbuffers::VOffsetT = 42;
|
|
pub const VT_TESTHASHS32_FNV1A: flatbuffers::VOffsetT = 44;
|
|
pub const VT_TESTHASHU32_FNV1A: flatbuffers::VOffsetT = 46;
|
|
pub const VT_TESTHASHS64_FNV1A: flatbuffers::VOffsetT = 48;
|
|
pub const VT_TESTHASHU64_FNV1A: flatbuffers::VOffsetT = 50;
|
|
pub const VT_TESTARRAYOFBOOLS: flatbuffers::VOffsetT = 52;
|
|
pub const VT_TESTF: flatbuffers::VOffsetT = 54;
|
|
pub const VT_TESTF2: flatbuffers::VOffsetT = 56;
|
|
pub const VT_TESTF3: flatbuffers::VOffsetT = 58;
|
|
pub const VT_TESTARRAYOFSTRING2: flatbuffers::VOffsetT = 60;
|
|
pub const VT_TESTARRAYOFSORTEDSTRUCT: flatbuffers::VOffsetT = 62;
|
|
pub const VT_FLEX: flatbuffers::VOffsetT = 64;
|
|
pub const VT_TEST5: flatbuffers::VOffsetT = 66;
|
|
pub const VT_VECTOR_OF_LONGS: flatbuffers::VOffsetT = 68;
|
|
pub const VT_VECTOR_OF_DOUBLES: flatbuffers::VOffsetT = 70;
|
|
pub const VT_PARENT_NAMESPACE_TEST: flatbuffers::VOffsetT = 72;
|
|
pub const VT_VECTOR_OF_REFERRABLES: flatbuffers::VOffsetT = 74;
|
|
pub const VT_SINGLE_WEAK_REFERENCE: flatbuffers::VOffsetT = 76;
|
|
pub const VT_VECTOR_OF_WEAK_REFERENCES: flatbuffers::VOffsetT = 78;
|
|
pub const VT_VECTOR_OF_STRONG_REFERRABLES: flatbuffers::VOffsetT = 80;
|
|
pub const VT_CO_OWNING_REFERENCE: flatbuffers::VOffsetT = 82;
|
|
pub const VT_VECTOR_OF_CO_OWNING_REFERENCES: flatbuffers::VOffsetT = 84;
|
|
pub const VT_NON_OWNING_REFERENCE: flatbuffers::VOffsetT = 86;
|
|
pub const VT_VECTOR_OF_NON_OWNING_REFERENCES: flatbuffers::VOffsetT = 88;
|
|
pub const VT_ANY_UNIQUE_TYPE: flatbuffers::VOffsetT = 90;
|
|
pub const VT_ANY_UNIQUE: flatbuffers::VOffsetT = 92;
|
|
pub const VT_ANY_AMBIGUOUS_TYPE: flatbuffers::VOffsetT = 94;
|
|
pub const VT_ANY_AMBIGUOUS: flatbuffers::VOffsetT = 96;
|
|
pub const VT_VECTOR_OF_ENUMS: flatbuffers::VOffsetT = 98;
|
|
pub const VT_SIGNED_ENUM: flatbuffers::VOffsetT = 100;
|
|
pub const VT_TESTREQUIREDNESTEDFLATBUFFER: flatbuffers::VOffsetT = 102;
|
|
pub const VT_SCALAR_KEY_SORTED_TABLES: flatbuffers::VOffsetT = 104;
|
|
|
|
#[inline]
|
|
pub fn pos(&self) -> Option<&'a Vec3> {
|
|
self._tab.get::<Vec3>(Monster::VT_POS, None)
|
|
}
|
|
#[inline]
|
|
pub fn mana(&self) -> i16 {
|
|
self._tab.get::<i16>(Monster::VT_MANA, Some(150)).unwrap()
|
|
}
|
|
#[inline]
|
|
pub fn hp(&self) -> i16 {
|
|
self._tab.get::<i16>(Monster::VT_HP, Some(100)).unwrap()
|
|
}
|
|
#[inline]
|
|
pub fn name(&self) -> &'a str {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(Monster::VT_NAME, None).unwrap()
|
|
}
|
|
#[inline]
|
|
pub fn key_compare_less_than(&self, o: &Monster) -> bool {
|
|
self.name() < o.name()
|
|
}
|
|
|
|
#[inline]
|
|
pub fn key_compare_with_value(&self, val: & str) -> ::std::cmp::Ordering {
|
|
let key = self.name();
|
|
key.cmp(&val)
|
|
}
|
|
#[inline]
|
|
pub fn inventory(&self) -> Option<&'a [u8]> {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, u8>>>(Monster::VT_INVENTORY, None).map(|v| v.safe_slice())
|
|
}
|
|
#[inline]
|
|
pub fn color(&self) -> Color {
|
|
self._tab.get::<Color>(Monster::VT_COLOR, Some(Color::Blue)).unwrap()
|
|
}
|
|
#[inline]
|
|
pub fn test_type(&self) -> Any {
|
|
self._tab.get::<Any>(Monster::VT_TEST_TYPE, Some(Any::NONE)).unwrap()
|
|
}
|
|
#[inline]
|
|
pub fn test(&self) -> Option<flatbuffers::Table<'a>> {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Table<'a>>>(Monster::VT_TEST, None)
|
|
}
|
|
#[inline]
|
|
pub fn test4(&self) -> Option<&'a [Test]> {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, Test>>>(Monster::VT_TEST4, None).map(|v| v.safe_slice())
|
|
}
|
|
#[inline]
|
|
pub fn testarrayofstring(&self) -> Option<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<&'a str>>> {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<&'a str>>>>(Monster::VT_TESTARRAYOFSTRING, None)
|
|
}
|
|
/// an example documentation comment: this will end up in the generated code
|
|
/// multiline too
|
|
#[inline]
|
|
pub fn testarrayoftables(&self) -> Option<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Monster<'a>>>> {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Monster>>>>(Monster::VT_TESTARRAYOFTABLES, None)
|
|
}
|
|
#[inline]
|
|
pub fn enemy(&self) -> Option<Monster<'a>> {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<Monster>>(Monster::VT_ENEMY, None)
|
|
}
|
|
#[inline]
|
|
pub fn testnestedflatbuffer(&self) -> Option<&'a [u8]> {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, u8>>>(Monster::VT_TESTNESTEDFLATBUFFER, None).map(|v| v.safe_slice())
|
|
}
|
|
pub fn testnestedflatbuffer_nested_flatbuffer(&'a self) -> Option<Monster<'a>> {
|
|
self.testnestedflatbuffer().map(|data| {
|
|
use flatbuffers::Follow;
|
|
<flatbuffers::ForwardsUOffset<Monster<'a>>>::follow(data, 0)
|
|
})
|
|
}
|
|
#[inline]
|
|
pub fn testempty(&self) -> Option<Stat<'a>> {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<Stat>>(Monster::VT_TESTEMPTY, None)
|
|
}
|
|
#[inline]
|
|
pub fn testbool(&self) -> bool {
|
|
self._tab.get::<bool>(Monster::VT_TESTBOOL, Some(false)).unwrap()
|
|
}
|
|
#[inline]
|
|
pub fn testhashs32_fnv1(&self) -> i32 {
|
|
self._tab.get::<i32>(Monster::VT_TESTHASHS32_FNV1, Some(0)).unwrap()
|
|
}
|
|
#[inline]
|
|
pub fn testhashu32_fnv1(&self) -> u32 {
|
|
self._tab.get::<u32>(Monster::VT_TESTHASHU32_FNV1, Some(0)).unwrap()
|
|
}
|
|
#[inline]
|
|
pub fn testhashs64_fnv1(&self) -> i64 {
|
|
self._tab.get::<i64>(Monster::VT_TESTHASHS64_FNV1, Some(0)).unwrap()
|
|
}
|
|
#[inline]
|
|
pub fn testhashu64_fnv1(&self) -> u64 {
|
|
self._tab.get::<u64>(Monster::VT_TESTHASHU64_FNV1, Some(0)).unwrap()
|
|
}
|
|
#[inline]
|
|
pub fn testhashs32_fnv1a(&self) -> i32 {
|
|
self._tab.get::<i32>(Monster::VT_TESTHASHS32_FNV1A, Some(0)).unwrap()
|
|
}
|
|
#[inline]
|
|
pub fn testhashu32_fnv1a(&self) -> u32 {
|
|
self._tab.get::<u32>(Monster::VT_TESTHASHU32_FNV1A, Some(0)).unwrap()
|
|
}
|
|
#[inline]
|
|
pub fn testhashs64_fnv1a(&self) -> i64 {
|
|
self._tab.get::<i64>(Monster::VT_TESTHASHS64_FNV1A, Some(0)).unwrap()
|
|
}
|
|
#[inline]
|
|
pub fn testhashu64_fnv1a(&self) -> u64 {
|
|
self._tab.get::<u64>(Monster::VT_TESTHASHU64_FNV1A, Some(0)).unwrap()
|
|
}
|
|
#[inline]
|
|
pub fn testarrayofbools(&self) -> Option<&'a [bool]> {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, bool>>>(Monster::VT_TESTARRAYOFBOOLS, None).map(|v| v.safe_slice())
|
|
}
|
|
#[inline]
|
|
pub fn testf(&self) -> f32 {
|
|
self._tab.get::<f32>(Monster::VT_TESTF, Some(3.14159)).unwrap()
|
|
}
|
|
#[inline]
|
|
pub fn testf2(&self) -> f32 {
|
|
self._tab.get::<f32>(Monster::VT_TESTF2, Some(3.0)).unwrap()
|
|
}
|
|
#[inline]
|
|
pub fn testf3(&self) -> f32 {
|
|
self._tab.get::<f32>(Monster::VT_TESTF3, Some(0.0)).unwrap()
|
|
}
|
|
#[inline]
|
|
pub fn testarrayofstring2(&self) -> Option<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<&'a str>>> {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<&'a str>>>>(Monster::VT_TESTARRAYOFSTRING2, None)
|
|
}
|
|
#[inline]
|
|
pub fn testarrayofsortedstruct(&self) -> Option<&'a [Ability]> {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, Ability>>>(Monster::VT_TESTARRAYOFSORTEDSTRUCT, None).map(|v| v.safe_slice())
|
|
}
|
|
#[inline]
|
|
pub fn flex(&self) -> Option<&'a [u8]> {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, u8>>>(Monster::VT_FLEX, None).map(|v| v.safe_slice())
|
|
}
|
|
#[inline]
|
|
pub fn test5(&self) -> Option<&'a [Test]> {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, Test>>>(Monster::VT_TEST5, None).map(|v| v.safe_slice())
|
|
}
|
|
#[inline]
|
|
pub fn vector_of_longs(&self) -> Option<flatbuffers::Vector<'a, i64>> {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, i64>>>(Monster::VT_VECTOR_OF_LONGS, None)
|
|
}
|
|
#[inline]
|
|
pub fn vector_of_doubles(&self) -> Option<flatbuffers::Vector<'a, f64>> {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, f64>>>(Monster::VT_VECTOR_OF_DOUBLES, None)
|
|
}
|
|
#[inline]
|
|
pub fn parent_namespace_test(&self) -> Option<super::InParentNamespace<'a>> {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<super::InParentNamespace>>(Monster::VT_PARENT_NAMESPACE_TEST, None)
|
|
}
|
|
#[inline]
|
|
pub fn vector_of_referrables(&self) -> Option<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Referrable<'a>>>> {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Referrable>>>>(Monster::VT_VECTOR_OF_REFERRABLES, None)
|
|
}
|
|
#[inline]
|
|
pub fn single_weak_reference(&self) -> u64 {
|
|
self._tab.get::<u64>(Monster::VT_SINGLE_WEAK_REFERENCE, Some(0)).unwrap()
|
|
}
|
|
#[inline]
|
|
pub fn vector_of_weak_references(&self) -> Option<flatbuffers::Vector<'a, u64>> {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, u64>>>(Monster::VT_VECTOR_OF_WEAK_REFERENCES, None)
|
|
}
|
|
#[inline]
|
|
pub fn vector_of_strong_referrables(&self) -> Option<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Referrable<'a>>>> {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Referrable>>>>(Monster::VT_VECTOR_OF_STRONG_REFERRABLES, None)
|
|
}
|
|
#[inline]
|
|
pub fn co_owning_reference(&self) -> u64 {
|
|
self._tab.get::<u64>(Monster::VT_CO_OWNING_REFERENCE, Some(0)).unwrap()
|
|
}
|
|
#[inline]
|
|
pub fn vector_of_co_owning_references(&self) -> Option<flatbuffers::Vector<'a, u64>> {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, u64>>>(Monster::VT_VECTOR_OF_CO_OWNING_REFERENCES, None)
|
|
}
|
|
#[inline]
|
|
pub fn non_owning_reference(&self) -> u64 {
|
|
self._tab.get::<u64>(Monster::VT_NON_OWNING_REFERENCE, Some(0)).unwrap()
|
|
}
|
|
#[inline]
|
|
pub fn vector_of_non_owning_references(&self) -> Option<flatbuffers::Vector<'a, u64>> {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, u64>>>(Monster::VT_VECTOR_OF_NON_OWNING_REFERENCES, None)
|
|
}
|
|
#[inline]
|
|
pub fn any_unique_type(&self) -> AnyUniqueAliases {
|
|
self._tab.get::<AnyUniqueAliases>(Monster::VT_ANY_UNIQUE_TYPE, Some(AnyUniqueAliases::NONE)).unwrap()
|
|
}
|
|
#[inline]
|
|
pub fn any_unique(&self) -> Option<flatbuffers::Table<'a>> {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Table<'a>>>(Monster::VT_ANY_UNIQUE, None)
|
|
}
|
|
#[inline]
|
|
pub fn any_ambiguous_type(&self) -> AnyAmbiguousAliases {
|
|
self._tab.get::<AnyAmbiguousAliases>(Monster::VT_ANY_AMBIGUOUS_TYPE, Some(AnyAmbiguousAliases::NONE)).unwrap()
|
|
}
|
|
#[inline]
|
|
pub fn any_ambiguous(&self) -> Option<flatbuffers::Table<'a>> {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Table<'a>>>(Monster::VT_ANY_AMBIGUOUS, None)
|
|
}
|
|
#[inline]
|
|
pub fn vector_of_enums(&self) -> Option<flatbuffers::Vector<'a, Color>> {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, Color>>>(Monster::VT_VECTOR_OF_ENUMS, None)
|
|
}
|
|
#[inline]
|
|
pub fn signed_enum(&self) -> Race {
|
|
self._tab.get::<Race>(Monster::VT_SIGNED_ENUM, Some(Race::None)).unwrap()
|
|
}
|
|
#[inline]
|
|
pub fn testrequirednestedflatbuffer(&self) -> Option<&'a [u8]> {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, u8>>>(Monster::VT_TESTREQUIREDNESTEDFLATBUFFER, None).map(|v| v.safe_slice())
|
|
}
|
|
pub fn testrequirednestedflatbuffer_nested_flatbuffer(&'a self) -> Option<Monster<'a>> {
|
|
self.testrequirednestedflatbuffer().map(|data| {
|
|
use flatbuffers::Follow;
|
|
<flatbuffers::ForwardsUOffset<Monster<'a>>>::follow(data, 0)
|
|
})
|
|
}
|
|
#[inline]
|
|
pub fn scalar_key_sorted_tables(&self) -> Option<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Stat<'a>>>> {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Stat>>>>(Monster::VT_SCALAR_KEY_SORTED_TABLES, None)
|
|
}
|
|
#[inline]
|
|
#[allow(non_snake_case)]
|
|
pub fn test_as_monster(&self) -> Option<Monster<'a>> {
|
|
if self.test_type() == Any::Monster {
|
|
self.test().map(Monster::init_from_table)
|
|
} else {
|
|
None
|
|
}
|
|
}
|
|
|
|
#[inline]
|
|
#[allow(non_snake_case)]
|
|
pub fn test_as_test_simple_table_with_enum(&self) -> Option<TestSimpleTableWithEnum<'a>> {
|
|
if self.test_type() == Any::TestSimpleTableWithEnum {
|
|
self.test().map(TestSimpleTableWithEnum::init_from_table)
|
|
} else {
|
|
None
|
|
}
|
|
}
|
|
|
|
#[inline]
|
|
#[allow(non_snake_case)]
|
|
pub fn test_as_my_game_example_2_monster(&self) -> Option<super::example_2::Monster<'a>> {
|
|
if self.test_type() == Any::MyGame_Example2_Monster {
|
|
self.test().map(super::example_2::Monster::init_from_table)
|
|
} else {
|
|
None
|
|
}
|
|
}
|
|
|
|
#[inline]
|
|
#[allow(non_snake_case)]
|
|
pub fn any_unique_as_m(&self) -> Option<Monster<'a>> {
|
|
if self.any_unique_type() == AnyUniqueAliases::M {
|
|
self.any_unique().map(Monster::init_from_table)
|
|
} else {
|
|
None
|
|
}
|
|
}
|
|
|
|
#[inline]
|
|
#[allow(non_snake_case)]
|
|
pub fn any_unique_as_ts(&self) -> Option<TestSimpleTableWithEnum<'a>> {
|
|
if self.any_unique_type() == AnyUniqueAliases::TS {
|
|
self.any_unique().map(TestSimpleTableWithEnum::init_from_table)
|
|
} else {
|
|
None
|
|
}
|
|
}
|
|
|
|
#[inline]
|
|
#[allow(non_snake_case)]
|
|
pub fn any_unique_as_m2(&self) -> Option<super::example_2::Monster<'a>> {
|
|
if self.any_unique_type() == AnyUniqueAliases::M2 {
|
|
self.any_unique().map(super::example_2::Monster::init_from_table)
|
|
} else {
|
|
None
|
|
}
|
|
}
|
|
|
|
#[inline]
|
|
#[allow(non_snake_case)]
|
|
pub fn any_ambiguous_as_m1(&self) -> Option<Monster<'a>> {
|
|
if self.any_ambiguous_type() == AnyAmbiguousAliases::M1 {
|
|
self.any_ambiguous().map(Monster::init_from_table)
|
|
} else {
|
|
None
|
|
}
|
|
}
|
|
|
|
#[inline]
|
|
#[allow(non_snake_case)]
|
|
pub fn any_ambiguous_as_m2(&self) -> Option<Monster<'a>> {
|
|
if self.any_ambiguous_type() == AnyAmbiguousAliases::M2 {
|
|
self.any_ambiguous().map(Monster::init_from_table)
|
|
} else {
|
|
None
|
|
}
|
|
}
|
|
|
|
#[inline]
|
|
#[allow(non_snake_case)]
|
|
pub fn any_ambiguous_as_m3(&self) -> Option<Monster<'a>> {
|
|
if self.any_ambiguous_type() == AnyAmbiguousAliases::M3 {
|
|
self.any_ambiguous().map(Monster::init_from_table)
|
|
} else {
|
|
None
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
impl flatbuffers::Verifiable for Monster<'_> {
|
|
#[inline]
|
|
fn run_verifier(
|
|
v: &mut flatbuffers::Verifier, pos: usize
|
|
) -> Result<(), flatbuffers::InvalidFlatbuffer> {
|
|
use self::flatbuffers::Verifiable;
|
|
v.visit_table(pos)?
|
|
.visit_field::<Vec3>(&"pos", Self::VT_POS, false)?
|
|
.visit_field::<i16>(&"mana", Self::VT_MANA, false)?
|
|
.visit_field::<i16>(&"hp", Self::VT_HP, false)?
|
|
.visit_field::<flatbuffers::ForwardsUOffset<&str>>(&"name", Self::VT_NAME, true)?
|
|
.visit_field::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'_, u8>>>(&"inventory", Self::VT_INVENTORY, false)?
|
|
.visit_field::<Color>(&"color", Self::VT_COLOR, false)?
|
|
.visit_union::<Any, _>(&"test_type", Self::VT_TEST_TYPE, &"test", Self::VT_TEST, false, |key, v, pos| {
|
|
match key {
|
|
Any::Monster => v.verify_union_variant::<flatbuffers::ForwardsUOffset<Monster>>("Any::Monster", pos),
|
|
Any::TestSimpleTableWithEnum => v.verify_union_variant::<flatbuffers::ForwardsUOffset<TestSimpleTableWithEnum>>("Any::TestSimpleTableWithEnum", pos),
|
|
Any::MyGame_Example2_Monster => v.verify_union_variant::<flatbuffers::ForwardsUOffset<super::example_2::Monster>>("Any::MyGame_Example2_Monster", pos),
|
|
_ => Ok(()),
|
|
}
|
|
})?
|
|
.visit_field::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'_, Test>>>(&"test4", Self::VT_TEST4, false)?
|
|
.visit_field::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'_, flatbuffers::ForwardsUOffset<&'_ str>>>>(&"testarrayofstring", Self::VT_TESTARRAYOFSTRING, false)?
|
|
.visit_field::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'_, flatbuffers::ForwardsUOffset<Monster>>>>(&"testarrayoftables", Self::VT_TESTARRAYOFTABLES, false)?
|
|
.visit_field::<flatbuffers::ForwardsUOffset<Monster>>(&"enemy", Self::VT_ENEMY, false)?
|
|
.visit_field::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'_, u8>>>(&"testnestedflatbuffer", Self::VT_TESTNESTEDFLATBUFFER, false)?
|
|
.visit_field::<flatbuffers::ForwardsUOffset<Stat>>(&"testempty", Self::VT_TESTEMPTY, false)?
|
|
.visit_field::<bool>(&"testbool", Self::VT_TESTBOOL, false)?
|
|
.visit_field::<i32>(&"testhashs32_fnv1", Self::VT_TESTHASHS32_FNV1, false)?
|
|
.visit_field::<u32>(&"testhashu32_fnv1", Self::VT_TESTHASHU32_FNV1, false)?
|
|
.visit_field::<i64>(&"testhashs64_fnv1", Self::VT_TESTHASHS64_FNV1, false)?
|
|
.visit_field::<u64>(&"testhashu64_fnv1", Self::VT_TESTHASHU64_FNV1, false)?
|
|
.visit_field::<i32>(&"testhashs32_fnv1a", Self::VT_TESTHASHS32_FNV1A, false)?
|
|
.visit_field::<u32>(&"testhashu32_fnv1a", Self::VT_TESTHASHU32_FNV1A, false)?
|
|
.visit_field::<i64>(&"testhashs64_fnv1a", Self::VT_TESTHASHS64_FNV1A, false)?
|
|
.visit_field::<u64>(&"testhashu64_fnv1a", Self::VT_TESTHASHU64_FNV1A, false)?
|
|
.visit_field::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'_, bool>>>(&"testarrayofbools", Self::VT_TESTARRAYOFBOOLS, false)?
|
|
.visit_field::<f32>(&"testf", Self::VT_TESTF, false)?
|
|
.visit_field::<f32>(&"testf2", Self::VT_TESTF2, false)?
|
|
.visit_field::<f32>(&"testf3", Self::VT_TESTF3, false)?
|
|
.visit_field::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'_, flatbuffers::ForwardsUOffset<&'_ str>>>>(&"testarrayofstring2", Self::VT_TESTARRAYOFSTRING2, false)?
|
|
.visit_field::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'_, Ability>>>(&"testarrayofsortedstruct", Self::VT_TESTARRAYOFSORTEDSTRUCT, false)?
|
|
.visit_field::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'_, u8>>>(&"flex", Self::VT_FLEX, false)?
|
|
.visit_field::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'_, Test>>>(&"test5", Self::VT_TEST5, false)?
|
|
.visit_field::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'_, i64>>>(&"vector_of_longs", Self::VT_VECTOR_OF_LONGS, false)?
|
|
.visit_field::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'_, f64>>>(&"vector_of_doubles", Self::VT_VECTOR_OF_DOUBLES, false)?
|
|
.visit_field::<flatbuffers::ForwardsUOffset<super::InParentNamespace>>(&"parent_namespace_test", Self::VT_PARENT_NAMESPACE_TEST, false)?
|
|
.visit_field::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'_, flatbuffers::ForwardsUOffset<Referrable>>>>(&"vector_of_referrables", Self::VT_VECTOR_OF_REFERRABLES, false)?
|
|
.visit_field::<u64>(&"single_weak_reference", Self::VT_SINGLE_WEAK_REFERENCE, false)?
|
|
.visit_field::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'_, u64>>>(&"vector_of_weak_references", Self::VT_VECTOR_OF_WEAK_REFERENCES, false)?
|
|
.visit_field::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'_, flatbuffers::ForwardsUOffset<Referrable>>>>(&"vector_of_strong_referrables", Self::VT_VECTOR_OF_STRONG_REFERRABLES, false)?
|
|
.visit_field::<u64>(&"co_owning_reference", Self::VT_CO_OWNING_REFERENCE, false)?
|
|
.visit_field::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'_, u64>>>(&"vector_of_co_owning_references", Self::VT_VECTOR_OF_CO_OWNING_REFERENCES, false)?
|
|
.visit_field::<u64>(&"non_owning_reference", Self::VT_NON_OWNING_REFERENCE, false)?
|
|
.visit_field::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'_, u64>>>(&"vector_of_non_owning_references", Self::VT_VECTOR_OF_NON_OWNING_REFERENCES, false)?
|
|
.visit_union::<AnyUniqueAliases, _>(&"any_unique_type", Self::VT_ANY_UNIQUE_TYPE, &"any_unique", Self::VT_ANY_UNIQUE, false, |key, v, pos| {
|
|
match key {
|
|
AnyUniqueAliases::M => v.verify_union_variant::<flatbuffers::ForwardsUOffset<Monster>>("AnyUniqueAliases::M", pos),
|
|
AnyUniqueAliases::TS => v.verify_union_variant::<flatbuffers::ForwardsUOffset<TestSimpleTableWithEnum>>("AnyUniqueAliases::TS", pos),
|
|
AnyUniqueAliases::M2 => v.verify_union_variant::<flatbuffers::ForwardsUOffset<super::example_2::Monster>>("AnyUniqueAliases::M2", pos),
|
|
_ => Ok(()),
|
|
}
|
|
})?
|
|
.visit_union::<AnyAmbiguousAliases, _>(&"any_ambiguous_type", Self::VT_ANY_AMBIGUOUS_TYPE, &"any_ambiguous", Self::VT_ANY_AMBIGUOUS, false, |key, v, pos| {
|
|
match key {
|
|
AnyAmbiguousAliases::M1 => v.verify_union_variant::<flatbuffers::ForwardsUOffset<Monster>>("AnyAmbiguousAliases::M1", pos),
|
|
AnyAmbiguousAliases::M2 => v.verify_union_variant::<flatbuffers::ForwardsUOffset<Monster>>("AnyAmbiguousAliases::M2", pos),
|
|
AnyAmbiguousAliases::M3 => v.verify_union_variant::<flatbuffers::ForwardsUOffset<Monster>>("AnyAmbiguousAliases::M3", pos),
|
|
_ => Ok(()),
|
|
}
|
|
})?
|
|
.visit_field::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'_, Color>>>(&"vector_of_enums", Self::VT_VECTOR_OF_ENUMS, false)?
|
|
.visit_field::<Race>(&"signed_enum", Self::VT_SIGNED_ENUM, false)?
|
|
.visit_field::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'_, u8>>>(&"testrequirednestedflatbuffer", Self::VT_TESTREQUIREDNESTEDFLATBUFFER, false)?
|
|
.visit_field::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'_, flatbuffers::ForwardsUOffset<Stat>>>>(&"scalar_key_sorted_tables", Self::VT_SCALAR_KEY_SORTED_TABLES, false)?
|
|
.finish();
|
|
Ok(())
|
|
}
|
|
}
|
|
pub struct MonsterArgs<'a> {
|
|
pub pos: Option<&'a Vec3>,
|
|
pub mana: i16,
|
|
pub hp: i16,
|
|
pub name: Option<flatbuffers::WIPOffset<&'a str>>,
|
|
pub inventory: Option<flatbuffers::WIPOffset<flatbuffers::Vector<'a, u8>>>,
|
|
pub color: Color,
|
|
pub test_type: Any,
|
|
pub test: Option<flatbuffers::WIPOffset<flatbuffers::UnionWIPOffset>>,
|
|
pub test4: Option<flatbuffers::WIPOffset<flatbuffers::Vector<'a, Test>>>,
|
|
pub testarrayofstring: Option<flatbuffers::WIPOffset<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<&'a str>>>>,
|
|
pub testarrayoftables: Option<flatbuffers::WIPOffset<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Monster<'a>>>>>,
|
|
pub enemy: Option<flatbuffers::WIPOffset<Monster<'a>>>,
|
|
pub testnestedflatbuffer: Option<flatbuffers::WIPOffset<flatbuffers::Vector<'a, u8>>>,
|
|
pub testempty: Option<flatbuffers::WIPOffset<Stat<'a>>>,
|
|
pub testbool: bool,
|
|
pub testhashs32_fnv1: i32,
|
|
pub testhashu32_fnv1: u32,
|
|
pub testhashs64_fnv1: i64,
|
|
pub testhashu64_fnv1: u64,
|
|
pub testhashs32_fnv1a: i32,
|
|
pub testhashu32_fnv1a: u32,
|
|
pub testhashs64_fnv1a: i64,
|
|
pub testhashu64_fnv1a: u64,
|
|
pub testarrayofbools: Option<flatbuffers::WIPOffset<flatbuffers::Vector<'a, bool>>>,
|
|
pub testf: f32,
|
|
pub testf2: f32,
|
|
pub testf3: f32,
|
|
pub testarrayofstring2: Option<flatbuffers::WIPOffset<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<&'a str>>>>,
|
|
pub testarrayofsortedstruct: Option<flatbuffers::WIPOffset<flatbuffers::Vector<'a, Ability>>>,
|
|
pub flex: Option<flatbuffers::WIPOffset<flatbuffers::Vector<'a, u8>>>,
|
|
pub test5: Option<flatbuffers::WIPOffset<flatbuffers::Vector<'a, Test>>>,
|
|
pub vector_of_longs: Option<flatbuffers::WIPOffset<flatbuffers::Vector<'a, i64>>>,
|
|
pub vector_of_doubles: Option<flatbuffers::WIPOffset<flatbuffers::Vector<'a, f64>>>,
|
|
pub parent_namespace_test: Option<flatbuffers::WIPOffset<super::InParentNamespace<'a>>>,
|
|
pub vector_of_referrables: Option<flatbuffers::WIPOffset<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Referrable<'a>>>>>,
|
|
pub single_weak_reference: u64,
|
|
pub vector_of_weak_references: Option<flatbuffers::WIPOffset<flatbuffers::Vector<'a, u64>>>,
|
|
pub vector_of_strong_referrables: Option<flatbuffers::WIPOffset<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Referrable<'a>>>>>,
|
|
pub co_owning_reference: u64,
|
|
pub vector_of_co_owning_references: Option<flatbuffers::WIPOffset<flatbuffers::Vector<'a, u64>>>,
|
|
pub non_owning_reference: u64,
|
|
pub vector_of_non_owning_references: Option<flatbuffers::WIPOffset<flatbuffers::Vector<'a, u64>>>,
|
|
pub any_unique_type: AnyUniqueAliases,
|
|
pub any_unique: Option<flatbuffers::WIPOffset<flatbuffers::UnionWIPOffset>>,
|
|
pub any_ambiguous_type: AnyAmbiguousAliases,
|
|
pub any_ambiguous: Option<flatbuffers::WIPOffset<flatbuffers::UnionWIPOffset>>,
|
|
pub vector_of_enums: Option<flatbuffers::WIPOffset<flatbuffers::Vector<'a, Color>>>,
|
|
pub signed_enum: Race,
|
|
pub testrequirednestedflatbuffer: Option<flatbuffers::WIPOffset<flatbuffers::Vector<'a, u8>>>,
|
|
pub scalar_key_sorted_tables: Option<flatbuffers::WIPOffset<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Stat<'a>>>>>,
|
|
}
|
|
impl<'a> Default for MonsterArgs<'a> {
|
|
#[inline]
|
|
fn default() -> Self {
|
|
MonsterArgs {
|
|
pos: None,
|
|
mana: 150,
|
|
hp: 100,
|
|
name: None, // required field
|
|
inventory: None,
|
|
color: Color::Blue,
|
|
test_type: Any::NONE,
|
|
test: None,
|
|
test4: None,
|
|
testarrayofstring: None,
|
|
testarrayoftables: None,
|
|
enemy: None,
|
|
testnestedflatbuffer: None,
|
|
testempty: None,
|
|
testbool: false,
|
|
testhashs32_fnv1: 0,
|
|
testhashu32_fnv1: 0,
|
|
testhashs64_fnv1: 0,
|
|
testhashu64_fnv1: 0,
|
|
testhashs32_fnv1a: 0,
|
|
testhashu32_fnv1a: 0,
|
|
testhashs64_fnv1a: 0,
|
|
testhashu64_fnv1a: 0,
|
|
testarrayofbools: None,
|
|
testf: 3.14159,
|
|
testf2: 3.0,
|
|
testf3: 0.0,
|
|
testarrayofstring2: None,
|
|
testarrayofsortedstruct: None,
|
|
flex: None,
|
|
test5: None,
|
|
vector_of_longs: None,
|
|
vector_of_doubles: None,
|
|
parent_namespace_test: None,
|
|
vector_of_referrables: None,
|
|
single_weak_reference: 0,
|
|
vector_of_weak_references: None,
|
|
vector_of_strong_referrables: None,
|
|
co_owning_reference: 0,
|
|
vector_of_co_owning_references: None,
|
|
non_owning_reference: 0,
|
|
vector_of_non_owning_references: None,
|
|
any_unique_type: AnyUniqueAliases::NONE,
|
|
any_unique: None,
|
|
any_ambiguous_type: AnyAmbiguousAliases::NONE,
|
|
any_ambiguous: None,
|
|
vector_of_enums: None,
|
|
signed_enum: Race::None,
|
|
testrequirednestedflatbuffer: None,
|
|
scalar_key_sorted_tables: None,
|
|
}
|
|
}
|
|
}
|
|
pub struct MonsterBuilder<'a: 'b, 'b> {
|
|
fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>,
|
|
start_: flatbuffers::WIPOffset<flatbuffers::TableUnfinishedWIPOffset>,
|
|
}
|
|
impl<'a: 'b, 'b> MonsterBuilder<'a, 'b> {
|
|
#[inline]
|
|
pub fn add_pos(&mut self, pos: &Vec3) {
|
|
self.fbb_.push_slot_always::<&Vec3>(Monster::VT_POS, pos);
|
|
}
|
|
#[inline]
|
|
pub fn add_mana(&mut self, mana: i16) {
|
|
self.fbb_.push_slot::<i16>(Monster::VT_MANA, mana, 150);
|
|
}
|
|
#[inline]
|
|
pub fn add_hp(&mut self, hp: i16) {
|
|
self.fbb_.push_slot::<i16>(Monster::VT_HP, hp, 100);
|
|
}
|
|
#[inline]
|
|
pub fn add_name(&mut self, name: flatbuffers::WIPOffset<&'b str>) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Monster::VT_NAME, name);
|
|
}
|
|
#[inline]
|
|
pub fn add_inventory(&mut self, inventory: flatbuffers::WIPOffset<flatbuffers::Vector<'b , u8>>) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Monster::VT_INVENTORY, inventory);
|
|
}
|
|
#[inline]
|
|
pub fn add_color(&mut self, color: Color) {
|
|
self.fbb_.push_slot::<Color>(Monster::VT_COLOR, color, Color::Blue);
|
|
}
|
|
#[inline]
|
|
pub fn add_test_type(&mut self, test_type: Any) {
|
|
self.fbb_.push_slot::<Any>(Monster::VT_TEST_TYPE, test_type, Any::NONE);
|
|
}
|
|
#[inline]
|
|
pub fn add_test(&mut self, test: flatbuffers::WIPOffset<flatbuffers::UnionWIPOffset>) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Monster::VT_TEST, test);
|
|
}
|
|
#[inline]
|
|
pub fn add_test4(&mut self, test4: flatbuffers::WIPOffset<flatbuffers::Vector<'b , Test>>) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Monster::VT_TEST4, test4);
|
|
}
|
|
#[inline]
|
|
pub fn add_testarrayofstring(&mut self, testarrayofstring: flatbuffers::WIPOffset<flatbuffers::Vector<'b , flatbuffers::ForwardsUOffset<&'b str>>>) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Monster::VT_TESTARRAYOFSTRING, testarrayofstring);
|
|
}
|
|
#[inline]
|
|
pub fn add_testarrayoftables(&mut self, testarrayoftables: flatbuffers::WIPOffset<flatbuffers::Vector<'b , flatbuffers::ForwardsUOffset<Monster<'b >>>>) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Monster::VT_TESTARRAYOFTABLES, testarrayoftables);
|
|
}
|
|
#[inline]
|
|
pub fn add_enemy(&mut self, enemy: flatbuffers::WIPOffset<Monster<'b >>) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<Monster>>(Monster::VT_ENEMY, enemy);
|
|
}
|
|
#[inline]
|
|
pub fn add_testnestedflatbuffer(&mut self, testnestedflatbuffer: flatbuffers::WIPOffset<flatbuffers::Vector<'b , u8>>) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Monster::VT_TESTNESTEDFLATBUFFER, testnestedflatbuffer);
|
|
}
|
|
#[inline]
|
|
pub fn add_testempty(&mut self, testempty: flatbuffers::WIPOffset<Stat<'b >>) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<Stat>>(Monster::VT_TESTEMPTY, testempty);
|
|
}
|
|
#[inline]
|
|
pub fn add_testbool(&mut self, testbool: bool) {
|
|
self.fbb_.push_slot::<bool>(Monster::VT_TESTBOOL, testbool, false);
|
|
}
|
|
#[inline]
|
|
pub fn add_testhashs32_fnv1(&mut self, testhashs32_fnv1: i32) {
|
|
self.fbb_.push_slot::<i32>(Monster::VT_TESTHASHS32_FNV1, testhashs32_fnv1, 0);
|
|
}
|
|
#[inline]
|
|
pub fn add_testhashu32_fnv1(&mut self, testhashu32_fnv1: u32) {
|
|
self.fbb_.push_slot::<u32>(Monster::VT_TESTHASHU32_FNV1, testhashu32_fnv1, 0);
|
|
}
|
|
#[inline]
|
|
pub fn add_testhashs64_fnv1(&mut self, testhashs64_fnv1: i64) {
|
|
self.fbb_.push_slot::<i64>(Monster::VT_TESTHASHS64_FNV1, testhashs64_fnv1, 0);
|
|
}
|
|
#[inline]
|
|
pub fn add_testhashu64_fnv1(&mut self, testhashu64_fnv1: u64) {
|
|
self.fbb_.push_slot::<u64>(Monster::VT_TESTHASHU64_FNV1, testhashu64_fnv1, 0);
|
|
}
|
|
#[inline]
|
|
pub fn add_testhashs32_fnv1a(&mut self, testhashs32_fnv1a: i32) {
|
|
self.fbb_.push_slot::<i32>(Monster::VT_TESTHASHS32_FNV1A, testhashs32_fnv1a, 0);
|
|
}
|
|
#[inline]
|
|
pub fn add_testhashu32_fnv1a(&mut self, testhashu32_fnv1a: u32) {
|
|
self.fbb_.push_slot::<u32>(Monster::VT_TESTHASHU32_FNV1A, testhashu32_fnv1a, 0);
|
|
}
|
|
#[inline]
|
|
pub fn add_testhashs64_fnv1a(&mut self, testhashs64_fnv1a: i64) {
|
|
self.fbb_.push_slot::<i64>(Monster::VT_TESTHASHS64_FNV1A, testhashs64_fnv1a, 0);
|
|
}
|
|
#[inline]
|
|
pub fn add_testhashu64_fnv1a(&mut self, testhashu64_fnv1a: u64) {
|
|
self.fbb_.push_slot::<u64>(Monster::VT_TESTHASHU64_FNV1A, testhashu64_fnv1a, 0);
|
|
}
|
|
#[inline]
|
|
pub fn add_testarrayofbools(&mut self, testarrayofbools: flatbuffers::WIPOffset<flatbuffers::Vector<'b , bool>>) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Monster::VT_TESTARRAYOFBOOLS, testarrayofbools);
|
|
}
|
|
#[inline]
|
|
pub fn add_testf(&mut self, testf: f32) {
|
|
self.fbb_.push_slot::<f32>(Monster::VT_TESTF, testf, 3.14159);
|
|
}
|
|
#[inline]
|
|
pub fn add_testf2(&mut self, testf2: f32) {
|
|
self.fbb_.push_slot::<f32>(Monster::VT_TESTF2, testf2, 3.0);
|
|
}
|
|
#[inline]
|
|
pub fn add_testf3(&mut self, testf3: f32) {
|
|
self.fbb_.push_slot::<f32>(Monster::VT_TESTF3, testf3, 0.0);
|
|
}
|
|
#[inline]
|
|
pub fn add_testarrayofstring2(&mut self, testarrayofstring2: flatbuffers::WIPOffset<flatbuffers::Vector<'b , flatbuffers::ForwardsUOffset<&'b str>>>) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Monster::VT_TESTARRAYOFSTRING2, testarrayofstring2);
|
|
}
|
|
#[inline]
|
|
pub fn add_testarrayofsortedstruct(&mut self, testarrayofsortedstruct: flatbuffers::WIPOffset<flatbuffers::Vector<'b , Ability>>) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Monster::VT_TESTARRAYOFSORTEDSTRUCT, testarrayofsortedstruct);
|
|
}
|
|
#[inline]
|
|
pub fn add_flex(&mut self, flex: flatbuffers::WIPOffset<flatbuffers::Vector<'b , u8>>) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Monster::VT_FLEX, flex);
|
|
}
|
|
#[inline]
|
|
pub fn add_test5(&mut self, test5: flatbuffers::WIPOffset<flatbuffers::Vector<'b , Test>>) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Monster::VT_TEST5, test5);
|
|
}
|
|
#[inline]
|
|
pub fn add_vector_of_longs(&mut self, vector_of_longs: flatbuffers::WIPOffset<flatbuffers::Vector<'b , i64>>) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Monster::VT_VECTOR_OF_LONGS, vector_of_longs);
|
|
}
|
|
#[inline]
|
|
pub fn add_vector_of_doubles(&mut self, vector_of_doubles: flatbuffers::WIPOffset<flatbuffers::Vector<'b , f64>>) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Monster::VT_VECTOR_OF_DOUBLES, vector_of_doubles);
|
|
}
|
|
#[inline]
|
|
pub fn add_parent_namespace_test(&mut self, parent_namespace_test: flatbuffers::WIPOffset<super::InParentNamespace<'b >>) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<super::InParentNamespace>>(Monster::VT_PARENT_NAMESPACE_TEST, parent_namespace_test);
|
|
}
|
|
#[inline]
|
|
pub fn add_vector_of_referrables(&mut self, vector_of_referrables: flatbuffers::WIPOffset<flatbuffers::Vector<'b , flatbuffers::ForwardsUOffset<Referrable<'b >>>>) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Monster::VT_VECTOR_OF_REFERRABLES, vector_of_referrables);
|
|
}
|
|
#[inline]
|
|
pub fn add_single_weak_reference(&mut self, single_weak_reference: u64) {
|
|
self.fbb_.push_slot::<u64>(Monster::VT_SINGLE_WEAK_REFERENCE, single_weak_reference, 0);
|
|
}
|
|
#[inline]
|
|
pub fn add_vector_of_weak_references(&mut self, vector_of_weak_references: flatbuffers::WIPOffset<flatbuffers::Vector<'b , u64>>) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Monster::VT_VECTOR_OF_WEAK_REFERENCES, vector_of_weak_references);
|
|
}
|
|
#[inline]
|
|
pub fn add_vector_of_strong_referrables(&mut self, vector_of_strong_referrables: flatbuffers::WIPOffset<flatbuffers::Vector<'b , flatbuffers::ForwardsUOffset<Referrable<'b >>>>) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Monster::VT_VECTOR_OF_STRONG_REFERRABLES, vector_of_strong_referrables);
|
|
}
|
|
#[inline]
|
|
pub fn add_co_owning_reference(&mut self, co_owning_reference: u64) {
|
|
self.fbb_.push_slot::<u64>(Monster::VT_CO_OWNING_REFERENCE, co_owning_reference, 0);
|
|
}
|
|
#[inline]
|
|
pub fn add_vector_of_co_owning_references(&mut self, vector_of_co_owning_references: flatbuffers::WIPOffset<flatbuffers::Vector<'b , u64>>) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Monster::VT_VECTOR_OF_CO_OWNING_REFERENCES, vector_of_co_owning_references);
|
|
}
|
|
#[inline]
|
|
pub fn add_non_owning_reference(&mut self, non_owning_reference: u64) {
|
|
self.fbb_.push_slot::<u64>(Monster::VT_NON_OWNING_REFERENCE, non_owning_reference, 0);
|
|
}
|
|
#[inline]
|
|
pub fn add_vector_of_non_owning_references(&mut self, vector_of_non_owning_references: flatbuffers::WIPOffset<flatbuffers::Vector<'b , u64>>) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Monster::VT_VECTOR_OF_NON_OWNING_REFERENCES, vector_of_non_owning_references);
|
|
}
|
|
#[inline]
|
|
pub fn add_any_unique_type(&mut self, any_unique_type: AnyUniqueAliases) {
|
|
self.fbb_.push_slot::<AnyUniqueAliases>(Monster::VT_ANY_UNIQUE_TYPE, any_unique_type, AnyUniqueAliases::NONE);
|
|
}
|
|
#[inline]
|
|
pub fn add_any_unique(&mut self, any_unique: flatbuffers::WIPOffset<flatbuffers::UnionWIPOffset>) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Monster::VT_ANY_UNIQUE, any_unique);
|
|
}
|
|
#[inline]
|
|
pub fn add_any_ambiguous_type(&mut self, any_ambiguous_type: AnyAmbiguousAliases) {
|
|
self.fbb_.push_slot::<AnyAmbiguousAliases>(Monster::VT_ANY_AMBIGUOUS_TYPE, any_ambiguous_type, AnyAmbiguousAliases::NONE);
|
|
}
|
|
#[inline]
|
|
pub fn add_any_ambiguous(&mut self, any_ambiguous: flatbuffers::WIPOffset<flatbuffers::UnionWIPOffset>) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Monster::VT_ANY_AMBIGUOUS, any_ambiguous);
|
|
}
|
|
#[inline]
|
|
pub fn add_vector_of_enums(&mut self, vector_of_enums: flatbuffers::WIPOffset<flatbuffers::Vector<'b , Color>>) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Monster::VT_VECTOR_OF_ENUMS, vector_of_enums);
|
|
}
|
|
#[inline]
|
|
pub fn add_signed_enum(&mut self, signed_enum: Race) {
|
|
self.fbb_.push_slot::<Race>(Monster::VT_SIGNED_ENUM, signed_enum, Race::None);
|
|
}
|
|
#[inline]
|
|
pub fn add_testrequirednestedflatbuffer(&mut self, testrequirednestedflatbuffer: flatbuffers::WIPOffset<flatbuffers::Vector<'b , u8>>) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Monster::VT_TESTREQUIREDNESTEDFLATBUFFER, testrequirednestedflatbuffer);
|
|
}
|
|
#[inline]
|
|
pub fn add_scalar_key_sorted_tables(&mut self, scalar_key_sorted_tables: flatbuffers::WIPOffset<flatbuffers::Vector<'b , flatbuffers::ForwardsUOffset<Stat<'b >>>>) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Monster::VT_SCALAR_KEY_SORTED_TABLES, scalar_key_sorted_tables);
|
|
}
|
|
#[inline]
|
|
pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> MonsterBuilder<'a, 'b> {
|
|
let start = _fbb.start_table();
|
|
MonsterBuilder {
|
|
fbb_: _fbb,
|
|
start_: start,
|
|
}
|
|
}
|
|
#[inline]
|
|
pub fn finish(self) -> flatbuffers::WIPOffset<Monster<'a>> {
|
|
let o = self.fbb_.end_table(self.start_);
|
|
self.fbb_.required(o, Monster::VT_NAME,"name");
|
|
flatbuffers::WIPOffset::new(o.value())
|
|
}
|
|
}
|
|
|
|
impl std::fmt::Debug for Monster<'_> {
|
|
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
|
let mut ds = f.debug_struct("Monster");
|
|
ds.field("pos", &self.pos());
|
|
ds.field("mana", &self.mana());
|
|
ds.field("hp", &self.hp());
|
|
ds.field("name", &self.name());
|
|
ds.field("inventory", &self.inventory());
|
|
ds.field("color", &self.color());
|
|
ds.field("test_type", &self.test_type());
|
|
match self.test_type() {
|
|
Any::Monster => {
|
|
if let Some(x) = self.test_as_monster() {
|
|
ds.field("test", &x)
|
|
} else {
|
|
ds.field("test", &"InvalidFlatbuffer: Union discriminant does not match value.")
|
|
}
|
|
},
|
|
Any::TestSimpleTableWithEnum => {
|
|
if let Some(x) = self.test_as_test_simple_table_with_enum() {
|
|
ds.field("test", &x)
|
|
} else {
|
|
ds.field("test", &"InvalidFlatbuffer: Union discriminant does not match value.")
|
|
}
|
|
},
|
|
Any::MyGame_Example2_Monster => {
|
|
if let Some(x) = self.test_as_my_game_example_2_monster() {
|
|
ds.field("test", &x)
|
|
} else {
|
|
ds.field("test", &"InvalidFlatbuffer: Union discriminant does not match value.")
|
|
}
|
|
},
|
|
_ => {
|
|
let x: Option<()> = None;
|
|
ds.field("test", &x)
|
|
},
|
|
};
|
|
ds.field("test4", &self.test4());
|
|
ds.field("testarrayofstring", &self.testarrayofstring());
|
|
ds.field("testarrayoftables", &self.testarrayoftables());
|
|
ds.field("enemy", &self.enemy());
|
|
ds.field("testnestedflatbuffer", &self.testnestedflatbuffer());
|
|
ds.field("testempty", &self.testempty());
|
|
ds.field("testbool", &self.testbool());
|
|
ds.field("testhashs32_fnv1", &self.testhashs32_fnv1());
|
|
ds.field("testhashu32_fnv1", &self.testhashu32_fnv1());
|
|
ds.field("testhashs64_fnv1", &self.testhashs64_fnv1());
|
|
ds.field("testhashu64_fnv1", &self.testhashu64_fnv1());
|
|
ds.field("testhashs32_fnv1a", &self.testhashs32_fnv1a());
|
|
ds.field("testhashu32_fnv1a", &self.testhashu32_fnv1a());
|
|
ds.field("testhashs64_fnv1a", &self.testhashs64_fnv1a());
|
|
ds.field("testhashu64_fnv1a", &self.testhashu64_fnv1a());
|
|
ds.field("testarrayofbools", &self.testarrayofbools());
|
|
ds.field("testf", &self.testf());
|
|
ds.field("testf2", &self.testf2());
|
|
ds.field("testf3", &self.testf3());
|
|
ds.field("testarrayofstring2", &self.testarrayofstring2());
|
|
ds.field("testarrayofsortedstruct", &self.testarrayofsortedstruct());
|
|
ds.field("flex", &self.flex());
|
|
ds.field("test5", &self.test5());
|
|
ds.field("vector_of_longs", &self.vector_of_longs());
|
|
ds.field("vector_of_doubles", &self.vector_of_doubles());
|
|
ds.field("parent_namespace_test", &self.parent_namespace_test());
|
|
ds.field("vector_of_referrables", &self.vector_of_referrables());
|
|
ds.field("single_weak_reference", &self.single_weak_reference());
|
|
ds.field("vector_of_weak_references", &self.vector_of_weak_references());
|
|
ds.field("vector_of_strong_referrables", &self.vector_of_strong_referrables());
|
|
ds.field("co_owning_reference", &self.co_owning_reference());
|
|
ds.field("vector_of_co_owning_references", &self.vector_of_co_owning_references());
|
|
ds.field("non_owning_reference", &self.non_owning_reference());
|
|
ds.field("vector_of_non_owning_references", &self.vector_of_non_owning_references());
|
|
ds.field("any_unique_type", &self.any_unique_type());
|
|
match self.any_unique_type() {
|
|
AnyUniqueAliases::M => {
|
|
if let Some(x) = self.any_unique_as_m() {
|
|
ds.field("any_unique", &x)
|
|
} else {
|
|
ds.field("any_unique", &"InvalidFlatbuffer: Union discriminant does not match value.")
|
|
}
|
|
},
|
|
AnyUniqueAliases::TS => {
|
|
if let Some(x) = self.any_unique_as_ts() {
|
|
ds.field("any_unique", &x)
|
|
} else {
|
|
ds.field("any_unique", &"InvalidFlatbuffer: Union discriminant does not match value.")
|
|
}
|
|
},
|
|
AnyUniqueAliases::M2 => {
|
|
if let Some(x) = self.any_unique_as_m2() {
|
|
ds.field("any_unique", &x)
|
|
} else {
|
|
ds.field("any_unique", &"InvalidFlatbuffer: Union discriminant does not match value.")
|
|
}
|
|
},
|
|
_ => {
|
|
let x: Option<()> = None;
|
|
ds.field("any_unique", &x)
|
|
},
|
|
};
|
|
ds.field("any_ambiguous_type", &self.any_ambiguous_type());
|
|
match self.any_ambiguous_type() {
|
|
AnyAmbiguousAliases::M1 => {
|
|
if let Some(x) = self.any_ambiguous_as_m1() {
|
|
ds.field("any_ambiguous", &x)
|
|
} else {
|
|
ds.field("any_ambiguous", &"InvalidFlatbuffer: Union discriminant does not match value.")
|
|
}
|
|
},
|
|
AnyAmbiguousAliases::M2 => {
|
|
if let Some(x) = self.any_ambiguous_as_m2() {
|
|
ds.field("any_ambiguous", &x)
|
|
} else {
|
|
ds.field("any_ambiguous", &"InvalidFlatbuffer: Union discriminant does not match value.")
|
|
}
|
|
},
|
|
AnyAmbiguousAliases::M3 => {
|
|
if let Some(x) = self.any_ambiguous_as_m3() {
|
|
ds.field("any_ambiguous", &x)
|
|
} else {
|
|
ds.field("any_ambiguous", &"InvalidFlatbuffer: Union discriminant does not match value.")
|
|
}
|
|
},
|
|
_ => {
|
|
let x: Option<()> = None;
|
|
ds.field("any_ambiguous", &x)
|
|
},
|
|
};
|
|
ds.field("vector_of_enums", &self.vector_of_enums());
|
|
ds.field("signed_enum", &self.signed_enum());
|
|
ds.field("testrequirednestedflatbuffer", &self.testrequirednestedflatbuffer());
|
|
ds.field("scalar_key_sorted_tables", &self.scalar_key_sorted_tables());
|
|
ds.finish()
|
|
}
|
|
}
|
|
#[non_exhaustive]
|
|
#[derive(Debug, Clone, PartialEq)]
|
|
pub struct MonsterT {
|
|
pub pos: Option<Vec3T>,
|
|
pub mana: i16,
|
|
pub hp: i16,
|
|
pub name: String,
|
|
pub inventory: Option<Vec<u8>>,
|
|
pub color: Color,
|
|
pub test: AnyT,
|
|
pub test4: Option<Vec<TestT>>,
|
|
pub testarrayofstring: Option<Vec<String>>,
|
|
pub testarrayoftables: Option<Vec<MonsterT>>,
|
|
pub enemy: Option<Box<MonsterT>>,
|
|
pub testnestedflatbuffer: Option<Vec<u8>>,
|
|
pub testempty: Option<Box<StatT>>,
|
|
pub testbool: bool,
|
|
pub testhashs32_fnv1: i32,
|
|
pub testhashu32_fnv1: u32,
|
|
pub testhashs64_fnv1: i64,
|
|
pub testhashu64_fnv1: u64,
|
|
pub testhashs32_fnv1a: i32,
|
|
pub testhashu32_fnv1a: u32,
|
|
pub testhashs64_fnv1a: i64,
|
|
pub testhashu64_fnv1a: u64,
|
|
pub testarrayofbools: Option<Vec<bool>>,
|
|
pub testf: f32,
|
|
pub testf2: f32,
|
|
pub testf3: f32,
|
|
pub testarrayofstring2: Option<Vec<String>>,
|
|
pub testarrayofsortedstruct: Option<Vec<AbilityT>>,
|
|
pub flex: Option<Vec<u8>>,
|
|
pub test5: Option<Vec<TestT>>,
|
|
pub vector_of_longs: Option<Vec<i64>>,
|
|
pub vector_of_doubles: Option<Vec<f64>>,
|
|
pub parent_namespace_test: Option<Box<super::InParentNamespaceT>>,
|
|
pub vector_of_referrables: Option<Vec<ReferrableT>>,
|
|
pub single_weak_reference: u64,
|
|
pub vector_of_weak_references: Option<Vec<u64>>,
|
|
pub vector_of_strong_referrables: Option<Vec<ReferrableT>>,
|
|
pub co_owning_reference: u64,
|
|
pub vector_of_co_owning_references: Option<Vec<u64>>,
|
|
pub non_owning_reference: u64,
|
|
pub vector_of_non_owning_references: Option<Vec<u64>>,
|
|
pub any_unique: AnyUniqueAliasesT,
|
|
pub any_ambiguous: AnyAmbiguousAliasesT,
|
|
pub vector_of_enums: Option<Vec<Color>>,
|
|
pub signed_enum: Race,
|
|
pub testrequirednestedflatbuffer: Option<Vec<u8>>,
|
|
pub scalar_key_sorted_tables: Option<Vec<StatT>>,
|
|
}
|
|
impl Default for MonsterT {
|
|
fn default() -> Self {
|
|
Self {
|
|
pos: None,
|
|
mana: 150,
|
|
hp: 100,
|
|
name: "".to_string(),
|
|
inventory: None,
|
|
color: Color::Blue,
|
|
test: AnyT::NONE,
|
|
test4: None,
|
|
testarrayofstring: None,
|
|
testarrayoftables: None,
|
|
enemy: None,
|
|
testnestedflatbuffer: None,
|
|
testempty: None,
|
|
testbool: false,
|
|
testhashs32_fnv1: 0,
|
|
testhashu32_fnv1: 0,
|
|
testhashs64_fnv1: 0,
|
|
testhashu64_fnv1: 0,
|
|
testhashs32_fnv1a: 0,
|
|
testhashu32_fnv1a: 0,
|
|
testhashs64_fnv1a: 0,
|
|
testhashu64_fnv1a: 0,
|
|
testarrayofbools: None,
|
|
testf: 3.14159,
|
|
testf2: 3.0,
|
|
testf3: 0.0,
|
|
testarrayofstring2: None,
|
|
testarrayofsortedstruct: None,
|
|
flex: None,
|
|
test5: None,
|
|
vector_of_longs: None,
|
|
vector_of_doubles: None,
|
|
parent_namespace_test: None,
|
|
vector_of_referrables: None,
|
|
single_weak_reference: 0,
|
|
vector_of_weak_references: None,
|
|
vector_of_strong_referrables: None,
|
|
co_owning_reference: 0,
|
|
vector_of_co_owning_references: None,
|
|
non_owning_reference: 0,
|
|
vector_of_non_owning_references: None,
|
|
any_unique: AnyUniqueAliasesT::NONE,
|
|
any_ambiguous: AnyAmbiguousAliasesT::NONE,
|
|
vector_of_enums: None,
|
|
signed_enum: Race::None,
|
|
testrequirednestedflatbuffer: None,
|
|
scalar_key_sorted_tables: None,
|
|
}
|
|
}
|
|
}
|
|
impl MonsterT {
|
|
pub fn pack<'b>(
|
|
&self,
|
|
_fbb: &mut flatbuffers::FlatBufferBuilder<'b>
|
|
) -> flatbuffers::WIPOffset<Monster<'b>> {
|
|
let pos_tmp = self.pos.as_ref().map(|x| x.pack());
|
|
let pos = pos_tmp.as_ref();
|
|
let mana = self.mana;
|
|
let hp = self.hp;
|
|
let name = Some({
|
|
let x = &self.name;
|
|
_fbb.create_string(x)
|
|
});
|
|
let inventory = self.inventory.as_ref().map(|x|{
|
|
_fbb.create_vector(x)
|
|
});
|
|
let color = self.color;
|
|
let test_type = self.test.any_type();
|
|
let test = self.test.pack(_fbb);
|
|
let test4 = self.test4.as_ref().map(|x|{
|
|
let w: Vec<_> = x.iter().map(|t| t.pack()).collect();_fbb.create_vector(&w)
|
|
});
|
|
let testarrayofstring = self.testarrayofstring.as_ref().map(|x|{
|
|
let w: Vec<_> = x.iter().map(|s| s.as_ref()).collect();_fbb.create_vector_of_strings(&w)
|
|
});
|
|
let testarrayoftables = self.testarrayoftables.as_ref().map(|x|{
|
|
let w: Vec<_> = x.iter().map(|t| t.pack(_fbb)).collect();_fbb.create_vector(&w)
|
|
});
|
|
let enemy = self.enemy.as_ref().map(|x|{
|
|
x.pack(_fbb)
|
|
});
|
|
let testnestedflatbuffer = self.testnestedflatbuffer.as_ref().map(|x|{
|
|
_fbb.create_vector(x)
|
|
});
|
|
let testempty = self.testempty.as_ref().map(|x|{
|
|
x.pack(_fbb)
|
|
});
|
|
let testbool = self.testbool;
|
|
let testhashs32_fnv1 = self.testhashs32_fnv1;
|
|
let testhashu32_fnv1 = self.testhashu32_fnv1;
|
|
let testhashs64_fnv1 = self.testhashs64_fnv1;
|
|
let testhashu64_fnv1 = self.testhashu64_fnv1;
|
|
let testhashs32_fnv1a = self.testhashs32_fnv1a;
|
|
let testhashu32_fnv1a = self.testhashu32_fnv1a;
|
|
let testhashs64_fnv1a = self.testhashs64_fnv1a;
|
|
let testhashu64_fnv1a = self.testhashu64_fnv1a;
|
|
let testarrayofbools = self.testarrayofbools.as_ref().map(|x|{
|
|
_fbb.create_vector(x)
|
|
});
|
|
let testf = self.testf;
|
|
let testf2 = self.testf2;
|
|
let testf3 = self.testf3;
|
|
let testarrayofstring2 = self.testarrayofstring2.as_ref().map(|x|{
|
|
let w: Vec<_> = x.iter().map(|s| s.as_ref()).collect();_fbb.create_vector_of_strings(&w)
|
|
});
|
|
let testarrayofsortedstruct = self.testarrayofsortedstruct.as_ref().map(|x|{
|
|
let w: Vec<_> = x.iter().map(|t| t.pack()).collect();_fbb.create_vector(&w)
|
|
});
|
|
let flex = self.flex.as_ref().map(|x|{
|
|
_fbb.create_vector(x)
|
|
});
|
|
let test5 = self.test5.as_ref().map(|x|{
|
|
let w: Vec<_> = x.iter().map(|t| t.pack()).collect();_fbb.create_vector(&w)
|
|
});
|
|
let vector_of_longs = self.vector_of_longs.as_ref().map(|x|{
|
|
_fbb.create_vector(x)
|
|
});
|
|
let vector_of_doubles = self.vector_of_doubles.as_ref().map(|x|{
|
|
_fbb.create_vector(x)
|
|
});
|
|
let parent_namespace_test = self.parent_namespace_test.as_ref().map(|x|{
|
|
x.pack(_fbb)
|
|
});
|
|
let vector_of_referrables = self.vector_of_referrables.as_ref().map(|x|{
|
|
let w: Vec<_> = x.iter().map(|t| t.pack(_fbb)).collect();_fbb.create_vector(&w)
|
|
});
|
|
let single_weak_reference = self.single_weak_reference;
|
|
let vector_of_weak_references = self.vector_of_weak_references.as_ref().map(|x|{
|
|
_fbb.create_vector(x)
|
|
});
|
|
let vector_of_strong_referrables = self.vector_of_strong_referrables.as_ref().map(|x|{
|
|
let w: Vec<_> = x.iter().map(|t| t.pack(_fbb)).collect();_fbb.create_vector(&w)
|
|
});
|
|
let co_owning_reference = self.co_owning_reference;
|
|
let vector_of_co_owning_references = self.vector_of_co_owning_references.as_ref().map(|x|{
|
|
_fbb.create_vector(x)
|
|
});
|
|
let non_owning_reference = self.non_owning_reference;
|
|
let vector_of_non_owning_references = self.vector_of_non_owning_references.as_ref().map(|x|{
|
|
_fbb.create_vector(x)
|
|
});
|
|
let any_unique_type = self.any_unique.any_unique_aliases_type();
|
|
let any_unique = self.any_unique.pack(_fbb);
|
|
let any_ambiguous_type = self.any_ambiguous.any_ambiguous_aliases_type();
|
|
let any_ambiguous = self.any_ambiguous.pack(_fbb);
|
|
let vector_of_enums = self.vector_of_enums.as_ref().map(|x|{
|
|
_fbb.create_vector(x)
|
|
});
|
|
let signed_enum = self.signed_enum;
|
|
let testrequirednestedflatbuffer = self.testrequirednestedflatbuffer.as_ref().map(|x|{
|
|
_fbb.create_vector(x)
|
|
});
|
|
let scalar_key_sorted_tables = self.scalar_key_sorted_tables.as_ref().map(|x|{
|
|
let w: Vec<_> = x.iter().map(|t| t.pack(_fbb)).collect();_fbb.create_vector(&w)
|
|
});
|
|
Monster::create(_fbb, &MonsterArgs{
|
|
pos,
|
|
mana,
|
|
hp,
|
|
name,
|
|
inventory,
|
|
color,
|
|
test_type,
|
|
test,
|
|
test4,
|
|
testarrayofstring,
|
|
testarrayoftables,
|
|
enemy,
|
|
testnestedflatbuffer,
|
|
testempty,
|
|
testbool,
|
|
testhashs32_fnv1,
|
|
testhashu32_fnv1,
|
|
testhashs64_fnv1,
|
|
testhashu64_fnv1,
|
|
testhashs32_fnv1a,
|
|
testhashu32_fnv1a,
|
|
testhashs64_fnv1a,
|
|
testhashu64_fnv1a,
|
|
testarrayofbools,
|
|
testf,
|
|
testf2,
|
|
testf3,
|
|
testarrayofstring2,
|
|
testarrayofsortedstruct,
|
|
flex,
|
|
test5,
|
|
vector_of_longs,
|
|
vector_of_doubles,
|
|
parent_namespace_test,
|
|
vector_of_referrables,
|
|
single_weak_reference,
|
|
vector_of_weak_references,
|
|
vector_of_strong_referrables,
|
|
co_owning_reference,
|
|
vector_of_co_owning_references,
|
|
non_owning_reference,
|
|
vector_of_non_owning_references,
|
|
any_unique_type,
|
|
any_unique,
|
|
any_ambiguous_type,
|
|
any_ambiguous,
|
|
vector_of_enums,
|
|
signed_enum,
|
|
testrequirednestedflatbuffer,
|
|
scalar_key_sorted_tables,
|
|
})
|
|
}
|
|
}
|
|
pub enum TypeAliasesOffset {}
|
|
#[derive(Copy, Clone, PartialEq)]
|
|
|
|
pub struct TypeAliases<'a> {
|
|
pub _tab: flatbuffers::Table<'a>,
|
|
}
|
|
|
|
impl<'a> flatbuffers::Follow<'a> for TypeAliases<'a> {
|
|
type Inner = TypeAliases<'a>;
|
|
#[inline]
|
|
fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
|
|
Self { _tab: flatbuffers::Table { buf, loc } }
|
|
}
|
|
}
|
|
|
|
impl<'a> TypeAliases<'a> {
|
|
pub const fn get_fully_qualified_name() -> &'static str {
|
|
"MyGame.Example.TypeAliases"
|
|
}
|
|
|
|
#[inline]
|
|
pub fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
|
|
TypeAliases { _tab: table }
|
|
}
|
|
#[allow(unused_mut)]
|
|
pub fn create<'bldr: 'args, 'args: 'mut_bldr, 'mut_bldr>(
|
|
_fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr>,
|
|
args: &'args TypeAliasesArgs<'args>) -> flatbuffers::WIPOffset<TypeAliases<'bldr>> {
|
|
let mut builder = TypeAliasesBuilder::new(_fbb);
|
|
builder.add_f64_(args.f64_);
|
|
builder.add_u64_(args.u64_);
|
|
builder.add_i64_(args.i64_);
|
|
if let Some(x) = args.vf64 { builder.add_vf64(x); }
|
|
if let Some(x) = args.v8 { builder.add_v8(x); }
|
|
builder.add_f32_(args.f32_);
|
|
builder.add_u32_(args.u32_);
|
|
builder.add_i32_(args.i32_);
|
|
builder.add_u16_(args.u16_);
|
|
builder.add_i16_(args.i16_);
|
|
builder.add_u8_(args.u8_);
|
|
builder.add_i8_(args.i8_);
|
|
builder.finish()
|
|
}
|
|
|
|
pub fn unpack(&self) -> TypeAliasesT {
|
|
let i8_ = self.i8_();
|
|
let u8_ = self.u8_();
|
|
let i16_ = self.i16_();
|
|
let u16_ = self.u16_();
|
|
let i32_ = self.i32_();
|
|
let u32_ = self.u32_();
|
|
let i64_ = self.i64_();
|
|
let u64_ = self.u64_();
|
|
let f32_ = self.f32_();
|
|
let f64_ = self.f64_();
|
|
let v8 = self.v8().map(|x| {
|
|
x.to_vec()
|
|
});
|
|
let vf64 = self.vf64().map(|x| {
|
|
x.into_iter().collect()
|
|
});
|
|
TypeAliasesT {
|
|
i8_,
|
|
u8_,
|
|
i16_,
|
|
u16_,
|
|
i32_,
|
|
u32_,
|
|
i64_,
|
|
u64_,
|
|
f32_,
|
|
f64_,
|
|
v8,
|
|
vf64,
|
|
}
|
|
}
|
|
pub const VT_I8_: flatbuffers::VOffsetT = 4;
|
|
pub const VT_U8_: flatbuffers::VOffsetT = 6;
|
|
pub const VT_I16_: flatbuffers::VOffsetT = 8;
|
|
pub const VT_U16_: flatbuffers::VOffsetT = 10;
|
|
pub const VT_I32_: flatbuffers::VOffsetT = 12;
|
|
pub const VT_U32_: flatbuffers::VOffsetT = 14;
|
|
pub const VT_I64_: flatbuffers::VOffsetT = 16;
|
|
pub const VT_U64_: flatbuffers::VOffsetT = 18;
|
|
pub const VT_F32_: flatbuffers::VOffsetT = 20;
|
|
pub const VT_F64_: flatbuffers::VOffsetT = 22;
|
|
pub const VT_V8: flatbuffers::VOffsetT = 24;
|
|
pub const VT_VF64: flatbuffers::VOffsetT = 26;
|
|
|
|
#[inline]
|
|
pub fn i8_(&self) -> i8 {
|
|
self._tab.get::<i8>(TypeAliases::VT_I8_, Some(0)).unwrap()
|
|
}
|
|
#[inline]
|
|
pub fn u8_(&self) -> u8 {
|
|
self._tab.get::<u8>(TypeAliases::VT_U8_, Some(0)).unwrap()
|
|
}
|
|
#[inline]
|
|
pub fn i16_(&self) -> i16 {
|
|
self._tab.get::<i16>(TypeAliases::VT_I16_, Some(0)).unwrap()
|
|
}
|
|
#[inline]
|
|
pub fn u16_(&self) -> u16 {
|
|
self._tab.get::<u16>(TypeAliases::VT_U16_, Some(0)).unwrap()
|
|
}
|
|
#[inline]
|
|
pub fn i32_(&self) -> i32 {
|
|
self._tab.get::<i32>(TypeAliases::VT_I32_, Some(0)).unwrap()
|
|
}
|
|
#[inline]
|
|
pub fn u32_(&self) -> u32 {
|
|
self._tab.get::<u32>(TypeAliases::VT_U32_, Some(0)).unwrap()
|
|
}
|
|
#[inline]
|
|
pub fn i64_(&self) -> i64 {
|
|
self._tab.get::<i64>(TypeAliases::VT_I64_, Some(0)).unwrap()
|
|
}
|
|
#[inline]
|
|
pub fn u64_(&self) -> u64 {
|
|
self._tab.get::<u64>(TypeAliases::VT_U64_, Some(0)).unwrap()
|
|
}
|
|
#[inline]
|
|
pub fn f32_(&self) -> f32 {
|
|
self._tab.get::<f32>(TypeAliases::VT_F32_, Some(0.0)).unwrap()
|
|
}
|
|
#[inline]
|
|
pub fn f64_(&self) -> f64 {
|
|
self._tab.get::<f64>(TypeAliases::VT_F64_, Some(0.0)).unwrap()
|
|
}
|
|
#[inline]
|
|
pub fn v8(&self) -> Option<&'a [i8]> {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, i8>>>(TypeAliases::VT_V8, None).map(|v| v.safe_slice())
|
|
}
|
|
#[inline]
|
|
pub fn vf64(&self) -> Option<flatbuffers::Vector<'a, f64>> {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, f64>>>(TypeAliases::VT_VF64, None)
|
|
}
|
|
}
|
|
|
|
impl flatbuffers::Verifiable for TypeAliases<'_> {
|
|
#[inline]
|
|
fn run_verifier(
|
|
v: &mut flatbuffers::Verifier, pos: usize
|
|
) -> Result<(), flatbuffers::InvalidFlatbuffer> {
|
|
use self::flatbuffers::Verifiable;
|
|
v.visit_table(pos)?
|
|
.visit_field::<i8>(&"i8_", Self::VT_I8_, false)?
|
|
.visit_field::<u8>(&"u8_", Self::VT_U8_, false)?
|
|
.visit_field::<i16>(&"i16_", Self::VT_I16_, false)?
|
|
.visit_field::<u16>(&"u16_", Self::VT_U16_, false)?
|
|
.visit_field::<i32>(&"i32_", Self::VT_I32_, false)?
|
|
.visit_field::<u32>(&"u32_", Self::VT_U32_, false)?
|
|
.visit_field::<i64>(&"i64_", Self::VT_I64_, false)?
|
|
.visit_field::<u64>(&"u64_", Self::VT_U64_, false)?
|
|
.visit_field::<f32>(&"f32_", Self::VT_F32_, false)?
|
|
.visit_field::<f64>(&"f64_", Self::VT_F64_, false)?
|
|
.visit_field::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'_, i8>>>(&"v8", Self::VT_V8, false)?
|
|
.visit_field::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'_, f64>>>(&"vf64", Self::VT_VF64, false)?
|
|
.finish();
|
|
Ok(())
|
|
}
|
|
}
|
|
pub struct TypeAliasesArgs<'a> {
|
|
pub i8_: i8,
|
|
pub u8_: u8,
|
|
pub i16_: i16,
|
|
pub u16_: u16,
|
|
pub i32_: i32,
|
|
pub u32_: u32,
|
|
pub i64_: i64,
|
|
pub u64_: u64,
|
|
pub f32_: f32,
|
|
pub f64_: f64,
|
|
pub v8: Option<flatbuffers::WIPOffset<flatbuffers::Vector<'a, i8>>>,
|
|
pub vf64: Option<flatbuffers::WIPOffset<flatbuffers::Vector<'a, f64>>>,
|
|
}
|
|
impl<'a> Default for TypeAliasesArgs<'a> {
|
|
#[inline]
|
|
fn default() -> Self {
|
|
TypeAliasesArgs {
|
|
i8_: 0,
|
|
u8_: 0,
|
|
i16_: 0,
|
|
u16_: 0,
|
|
i32_: 0,
|
|
u32_: 0,
|
|
i64_: 0,
|
|
u64_: 0,
|
|
f32_: 0.0,
|
|
f64_: 0.0,
|
|
v8: None,
|
|
vf64: None,
|
|
}
|
|
}
|
|
}
|
|
pub struct TypeAliasesBuilder<'a: 'b, 'b> {
|
|
fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a>,
|
|
start_: flatbuffers::WIPOffset<flatbuffers::TableUnfinishedWIPOffset>,
|
|
}
|
|
impl<'a: 'b, 'b> TypeAliasesBuilder<'a, 'b> {
|
|
#[inline]
|
|
pub fn add_i8_(&mut self, i8_: i8) {
|
|
self.fbb_.push_slot::<i8>(TypeAliases::VT_I8_, i8_, 0);
|
|
}
|
|
#[inline]
|
|
pub fn add_u8_(&mut self, u8_: u8) {
|
|
self.fbb_.push_slot::<u8>(TypeAliases::VT_U8_, u8_, 0);
|
|
}
|
|
#[inline]
|
|
pub fn add_i16_(&mut self, i16_: i16) {
|
|
self.fbb_.push_slot::<i16>(TypeAliases::VT_I16_, i16_, 0);
|
|
}
|
|
#[inline]
|
|
pub fn add_u16_(&mut self, u16_: u16) {
|
|
self.fbb_.push_slot::<u16>(TypeAliases::VT_U16_, u16_, 0);
|
|
}
|
|
#[inline]
|
|
pub fn add_i32_(&mut self, i32_: i32) {
|
|
self.fbb_.push_slot::<i32>(TypeAliases::VT_I32_, i32_, 0);
|
|
}
|
|
#[inline]
|
|
pub fn add_u32_(&mut self, u32_: u32) {
|
|
self.fbb_.push_slot::<u32>(TypeAliases::VT_U32_, u32_, 0);
|
|
}
|
|
#[inline]
|
|
pub fn add_i64_(&mut self, i64_: i64) {
|
|
self.fbb_.push_slot::<i64>(TypeAliases::VT_I64_, i64_, 0);
|
|
}
|
|
#[inline]
|
|
pub fn add_u64_(&mut self, u64_: u64) {
|
|
self.fbb_.push_slot::<u64>(TypeAliases::VT_U64_, u64_, 0);
|
|
}
|
|
#[inline]
|
|
pub fn add_f32_(&mut self, f32_: f32) {
|
|
self.fbb_.push_slot::<f32>(TypeAliases::VT_F32_, f32_, 0.0);
|
|
}
|
|
#[inline]
|
|
pub fn add_f64_(&mut self, f64_: f64) {
|
|
self.fbb_.push_slot::<f64>(TypeAliases::VT_F64_, f64_, 0.0);
|
|
}
|
|
#[inline]
|
|
pub fn add_v8(&mut self, v8: flatbuffers::WIPOffset<flatbuffers::Vector<'b , i8>>) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(TypeAliases::VT_V8, v8);
|
|
}
|
|
#[inline]
|
|
pub fn add_vf64(&mut self, vf64: flatbuffers::WIPOffset<flatbuffers::Vector<'b , f64>>) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(TypeAliases::VT_VF64, vf64);
|
|
}
|
|
#[inline]
|
|
pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>) -> TypeAliasesBuilder<'a, 'b> {
|
|
let start = _fbb.start_table();
|
|
TypeAliasesBuilder {
|
|
fbb_: _fbb,
|
|
start_: start,
|
|
}
|
|
}
|
|
#[inline]
|
|
pub fn finish(self) -> flatbuffers::WIPOffset<TypeAliases<'a>> {
|
|
let o = self.fbb_.end_table(self.start_);
|
|
flatbuffers::WIPOffset::new(o.value())
|
|
}
|
|
}
|
|
|
|
impl std::fmt::Debug for TypeAliases<'_> {
|
|
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
|
let mut ds = f.debug_struct("TypeAliases");
|
|
ds.field("i8_", &self.i8_());
|
|
ds.field("u8_", &self.u8_());
|
|
ds.field("i16_", &self.i16_());
|
|
ds.field("u16_", &self.u16_());
|
|
ds.field("i32_", &self.i32_());
|
|
ds.field("u32_", &self.u32_());
|
|
ds.field("i64_", &self.i64_());
|
|
ds.field("u64_", &self.u64_());
|
|
ds.field("f32_", &self.f32_());
|
|
ds.field("f64_", &self.f64_());
|
|
ds.field("v8", &self.v8());
|
|
ds.field("vf64", &self.vf64());
|
|
ds.finish()
|
|
}
|
|
}
|
|
#[non_exhaustive]
|
|
#[derive(Debug, Clone, PartialEq)]
|
|
pub struct TypeAliasesT {
|
|
pub i8_: i8,
|
|
pub u8_: u8,
|
|
pub i16_: i16,
|
|
pub u16_: u16,
|
|
pub i32_: i32,
|
|
pub u32_: u32,
|
|
pub i64_: i64,
|
|
pub u64_: u64,
|
|
pub f32_: f32,
|
|
pub f64_: f64,
|
|
pub v8: Option<Vec<i8>>,
|
|
pub vf64: Option<Vec<f64>>,
|
|
}
|
|
impl Default for TypeAliasesT {
|
|
fn default() -> Self {
|
|
Self {
|
|
i8_: 0,
|
|
u8_: 0,
|
|
i16_: 0,
|
|
u16_: 0,
|
|
i32_: 0,
|
|
u32_: 0,
|
|
i64_: 0,
|
|
u64_: 0,
|
|
f32_: 0.0,
|
|
f64_: 0.0,
|
|
v8: None,
|
|
vf64: None,
|
|
}
|
|
}
|
|
}
|
|
impl TypeAliasesT {
|
|
pub fn pack<'b>(
|
|
&self,
|
|
_fbb: &mut flatbuffers::FlatBufferBuilder<'b>
|
|
) -> flatbuffers::WIPOffset<TypeAliases<'b>> {
|
|
let i8_ = self.i8_;
|
|
let u8_ = self.u8_;
|
|
let i16_ = self.i16_;
|
|
let u16_ = self.u16_;
|
|
let i32_ = self.i32_;
|
|
let u32_ = self.u32_;
|
|
let i64_ = self.i64_;
|
|
let u64_ = self.u64_;
|
|
let f32_ = self.f32_;
|
|
let f64_ = self.f64_;
|
|
let v8 = self.v8.as_ref().map(|x|{
|
|
_fbb.create_vector(x)
|
|
});
|
|
let vf64 = self.vf64.as_ref().map(|x|{
|
|
_fbb.create_vector(x)
|
|
});
|
|
TypeAliases::create(_fbb, &TypeAliasesArgs{
|
|
i8_,
|
|
u8_,
|
|
i16_,
|
|
u16_,
|
|
i32_,
|
|
u32_,
|
|
i64_,
|
|
u64_,
|
|
f32_,
|
|
f64_,
|
|
v8,
|
|
vf64,
|
|
})
|
|
}
|
|
}
|
|
#[inline]
|
|
#[deprecated(since="2.0.0", note="Deprecated in favor of `root_as...` methods.")]
|
|
pub fn get_root_as_monster<'a>(buf: &'a [u8]) -> Monster<'a> {
|
|
unsafe { flatbuffers::root_unchecked::<Monster<'a>>(buf) }
|
|
}
|
|
|
|
#[inline]
|
|
#[deprecated(since="2.0.0", note="Deprecated in favor of `root_as...` methods.")]
|
|
pub fn get_size_prefixed_root_as_monster<'a>(buf: &'a [u8]) -> Monster<'a> {
|
|
unsafe { flatbuffers::size_prefixed_root_unchecked::<Monster<'a>>(buf) }
|
|
}
|
|
|
|
#[inline]
|
|
/// Verifies that a buffer of bytes contains a `Monster`
|
|
/// and returns it.
|
|
/// Note that verification is still experimental and may not
|
|
/// catch every error, or be maximally performant. For the
|
|
/// previous, unchecked, behavior use
|
|
/// `root_as_monster_unchecked`.
|
|
pub fn root_as_monster(buf: &[u8]) -> Result<Monster, flatbuffers::InvalidFlatbuffer> {
|
|
flatbuffers::root::<Monster>(buf)
|
|
}
|
|
#[inline]
|
|
/// Verifies that a buffer of bytes contains a size prefixed
|
|
/// `Monster` and returns it.
|
|
/// Note that verification is still experimental and may not
|
|
/// catch every error, or be maximally performant. For the
|
|
/// previous, unchecked, behavior use
|
|
/// `size_prefixed_root_as_monster_unchecked`.
|
|
pub fn size_prefixed_root_as_monster(buf: &[u8]) -> Result<Monster, flatbuffers::InvalidFlatbuffer> {
|
|
flatbuffers::size_prefixed_root::<Monster>(buf)
|
|
}
|
|
#[inline]
|
|
/// Verifies, with the given options, that a buffer of bytes
|
|
/// contains a `Monster` and returns it.
|
|
/// Note that verification is still experimental and may not
|
|
/// catch every error, or be maximally performant. For the
|
|
/// previous, unchecked, behavior use
|
|
/// `root_as_monster_unchecked`.
|
|
pub fn root_as_monster_with_opts<'b, 'o>(
|
|
opts: &'o flatbuffers::VerifierOptions,
|
|
buf: &'b [u8],
|
|
) -> Result<Monster<'b>, flatbuffers::InvalidFlatbuffer> {
|
|
flatbuffers::root_with_opts::<Monster<'b>>(opts, buf)
|
|
}
|
|
#[inline]
|
|
/// Verifies, with the given verifier options, that a buffer of
|
|
/// bytes contains a size prefixed `Monster` and returns
|
|
/// it. Note that verification is still experimental and may not
|
|
/// catch every error, or be maximally performant. For the
|
|
/// previous, unchecked, behavior use
|
|
/// `root_as_monster_unchecked`.
|
|
pub fn size_prefixed_root_as_monster_with_opts<'b, 'o>(
|
|
opts: &'o flatbuffers::VerifierOptions,
|
|
buf: &'b [u8],
|
|
) -> Result<Monster<'b>, flatbuffers::InvalidFlatbuffer> {
|
|
flatbuffers::size_prefixed_root_with_opts::<Monster<'b>>(opts, buf)
|
|
}
|
|
#[inline]
|
|
/// Assumes, without verification, that a buffer of bytes contains a Monster and returns it.
|
|
/// # Safety
|
|
/// Callers must trust the given bytes do indeed contain a valid `Monster`.
|
|
pub unsafe fn root_as_monster_unchecked(buf: &[u8]) -> Monster {
|
|
flatbuffers::root_unchecked::<Monster>(buf)
|
|
}
|
|
#[inline]
|
|
/// Assumes, without verification, that a buffer of bytes contains a size prefixed Monster and returns it.
|
|
/// # Safety
|
|
/// Callers must trust the given bytes do indeed contain a valid size prefixed `Monster`.
|
|
pub unsafe fn size_prefixed_root_as_monster_unchecked(buf: &[u8]) -> Monster {
|
|
flatbuffers::size_prefixed_root_unchecked::<Monster>(buf)
|
|
}
|
|
pub const MONSTER_IDENTIFIER: &str = "MONS";
|
|
|
|
#[inline]
|
|
pub fn monster_buffer_has_identifier(buf: &[u8]) -> bool {
|
|
flatbuffers::buffer_has_identifier(buf, MONSTER_IDENTIFIER, false)
|
|
}
|
|
|
|
#[inline]
|
|
pub fn monster_size_prefixed_buffer_has_identifier(buf: &[u8]) -> bool {
|
|
flatbuffers::buffer_has_identifier(buf, MONSTER_IDENTIFIER, true)
|
|
}
|
|
|
|
pub const MONSTER_EXTENSION: &str = "mon";
|
|
|
|
#[inline]
|
|
pub fn finish_monster_buffer<'a, 'b>(
|
|
fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>,
|
|
root: flatbuffers::WIPOffset<Monster<'a>>) {
|
|
fbb.finish(root, Some(MONSTER_IDENTIFIER));
|
|
}
|
|
|
|
#[inline]
|
|
pub fn finish_size_prefixed_monster_buffer<'a, 'b>(fbb: &'b mut flatbuffers::FlatBufferBuilder<'a>, root: flatbuffers::WIPOffset<Monster<'a>>) {
|
|
fbb.finish_size_prefixed(root, Some(MONSTER_IDENTIFIER));
|
|
}
|
|
} // pub mod Example
|
|
} // pub mod MyGame
|
|
|