mirror of
https://github.com/google/flatbuffers.git
synced 2026-06-02 20:15:34 +00:00
2893 lines
108 KiB
Rust
2893 lines
108 KiB
Rust
// automatically generated by the FlatBuffers compiler, do not modify
|
|
|
|
// @generated
|
|
|
|
use core::cmp::Ordering;
|
|
use core::mem;
|
|
|
|
extern crate flatbuffers;
|
|
use self::flatbuffers::{EndianScalar, Follow};
|
|
|
|
#[allow(unused_imports, dead_code)]
|
|
pub mod reflection {
|
|
|
|
use core::cmp::Ordering;
|
|
use core::mem;
|
|
|
|
extern crate flatbuffers;
|
|
use self::flatbuffers::{EndianScalar, Follow};
|
|
|
|
#[deprecated(
|
|
since = "2.0.0",
|
|
note = "Use associated constants instead. This will no longer be generated in 2021."
|
|
)]
|
|
pub const ENUM_MIN_BASE_TYPE: i8 = 0;
|
|
#[deprecated(
|
|
since = "2.0.0",
|
|
note = "Use associated constants instead. This will no longer be generated in 2021."
|
|
)]
|
|
pub const ENUM_MAX_BASE_TYPE: i8 = 19;
|
|
#[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_BASE_TYPE: [BaseType; 20] = [
|
|
BaseType::None,
|
|
BaseType::UType,
|
|
BaseType::Bool,
|
|
BaseType::Byte,
|
|
BaseType::UByte,
|
|
BaseType::Short,
|
|
BaseType::UShort,
|
|
BaseType::Int,
|
|
BaseType::UInt,
|
|
BaseType::Long,
|
|
BaseType::ULong,
|
|
BaseType::Float,
|
|
BaseType::Double,
|
|
BaseType::String,
|
|
BaseType::Vector,
|
|
BaseType::Obj,
|
|
BaseType::Union,
|
|
BaseType::Array,
|
|
BaseType::Vector64,
|
|
BaseType::MaxBaseType,
|
|
];
|
|
|
|
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
|
|
#[repr(transparent)]
|
|
pub struct BaseType(pub i8);
|
|
#[allow(non_upper_case_globals)]
|
|
impl BaseType {
|
|
pub const None: Self = Self(0);
|
|
pub const UType: Self = Self(1);
|
|
pub const Bool: Self = Self(2);
|
|
pub const Byte: Self = Self(3);
|
|
pub const UByte: Self = Self(4);
|
|
pub const Short: Self = Self(5);
|
|
pub const UShort: Self = Self(6);
|
|
pub const Int: Self = Self(7);
|
|
pub const UInt: Self = Self(8);
|
|
pub const Long: Self = Self(9);
|
|
pub const ULong: Self = Self(10);
|
|
pub const Float: Self = Self(11);
|
|
pub const Double: Self = Self(12);
|
|
pub const String: Self = Self(13);
|
|
pub const Vector: Self = Self(14);
|
|
pub const Obj: Self = Self(15);
|
|
pub const Union: Self = Self(16);
|
|
pub const Array: Self = Self(17);
|
|
pub const Vector64: Self = Self(18);
|
|
pub const MaxBaseType: Self = Self(19);
|
|
|
|
pub const ENUM_MIN: i8 = 0;
|
|
pub const ENUM_MAX: i8 = 19;
|
|
pub const ENUM_VALUES: &'static [Self] = &[
|
|
Self::None,
|
|
Self::UType,
|
|
Self::Bool,
|
|
Self::Byte,
|
|
Self::UByte,
|
|
Self::Short,
|
|
Self::UShort,
|
|
Self::Int,
|
|
Self::UInt,
|
|
Self::Long,
|
|
Self::ULong,
|
|
Self::Float,
|
|
Self::Double,
|
|
Self::String,
|
|
Self::Vector,
|
|
Self::Obj,
|
|
Self::Union,
|
|
Self::Array,
|
|
Self::Vector64,
|
|
Self::MaxBaseType,
|
|
];
|
|
/// Returns the variant's name or "" if unknown.
|
|
pub fn variant_name(self) -> Option<&'static str> {
|
|
match self {
|
|
Self::None => Some("None"),
|
|
Self::UType => Some("UType"),
|
|
Self::Bool => Some("Bool"),
|
|
Self::Byte => Some("Byte"),
|
|
Self::UByte => Some("UByte"),
|
|
Self::Short => Some("Short"),
|
|
Self::UShort => Some("UShort"),
|
|
Self::Int => Some("Int"),
|
|
Self::UInt => Some("UInt"),
|
|
Self::Long => Some("Long"),
|
|
Self::ULong => Some("ULong"),
|
|
Self::Float => Some("Float"),
|
|
Self::Double => Some("Double"),
|
|
Self::String => Some("String"),
|
|
Self::Vector => Some("Vector"),
|
|
Self::Obj => Some("Obj"),
|
|
Self::Union => Some("Union"),
|
|
Self::Array => Some("Array"),
|
|
Self::Vector64 => Some("Vector64"),
|
|
Self::MaxBaseType => Some("MaxBaseType"),
|
|
_ => None,
|
|
}
|
|
}
|
|
}
|
|
impl core::fmt::Debug for BaseType {
|
|
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::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 BaseType {
|
|
type Inner = Self;
|
|
#[inline]
|
|
unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
|
|
let b = flatbuffers::read_scalar_at::<i8>(buf, loc);
|
|
Self(b)
|
|
}
|
|
}
|
|
|
|
impl flatbuffers::Push for BaseType {
|
|
type Output = BaseType;
|
|
#[inline]
|
|
unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
|
|
flatbuffers::emplace_scalar::<i8>(dst, self.0);
|
|
}
|
|
}
|
|
|
|
impl flatbuffers::EndianScalar for BaseType {
|
|
type Scalar = i8;
|
|
#[inline]
|
|
fn to_little_endian(self) -> i8 {
|
|
self.0.to_le()
|
|
}
|
|
#[inline]
|
|
#[allow(clippy::wrong_self_convention)]
|
|
fn from_little_endian(v: i8) -> Self {
|
|
let b = i8::from_le(v);
|
|
Self(b)
|
|
}
|
|
}
|
|
|
|
impl<'a> flatbuffers::Verifiable for BaseType {
|
|
#[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 BaseType {}
|
|
#[allow(non_upper_case_globals)]
|
|
mod bitflags_advanced_features {
|
|
flatbuffers::bitflags::bitflags! {
|
|
/// New schema language features that are not supported by old code generators.
|
|
#[derive(Default, Debug, Clone, Copy, PartialEq)]
|
|
pub struct AdvancedFeatures: u64 {
|
|
const AdvancedArrayFeatures = 1;
|
|
const AdvancedUnionFeatures = 2;
|
|
const OptionalScalars = 4;
|
|
const DefaultVectorsAndStrings = 8;
|
|
}
|
|
}
|
|
}
|
|
pub use self::bitflags_advanced_features::AdvancedFeatures;
|
|
|
|
impl<'a> flatbuffers::Follow<'a> for AdvancedFeatures {
|
|
type Inner = Self;
|
|
#[inline]
|
|
unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
|
|
let b = flatbuffers::read_scalar_at::<u64>(buf, loc);
|
|
Self::from_bits_retain(b)
|
|
}
|
|
}
|
|
|
|
impl flatbuffers::Push for AdvancedFeatures {
|
|
type Output = AdvancedFeatures;
|
|
#[inline]
|
|
unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
|
|
flatbuffers::emplace_scalar::<u64>(dst, self.bits());
|
|
}
|
|
}
|
|
|
|
impl flatbuffers::EndianScalar for AdvancedFeatures {
|
|
type Scalar = u64;
|
|
#[inline]
|
|
fn to_little_endian(self) -> u64 {
|
|
self.bits().to_le()
|
|
}
|
|
#[inline]
|
|
#[allow(clippy::wrong_self_convention)]
|
|
fn from_little_endian(v: u64) -> Self {
|
|
let b = u64::from_le(v);
|
|
Self::from_bits_retain(b)
|
|
}
|
|
}
|
|
|
|
impl<'a> flatbuffers::Verifiable for AdvancedFeatures {
|
|
#[inline]
|
|
fn run_verifier(
|
|
v: &mut flatbuffers::Verifier,
|
|
pos: usize,
|
|
) -> Result<(), flatbuffers::InvalidFlatbuffer> {
|
|
use self::flatbuffers::Verifiable;
|
|
u64::run_verifier(v, pos)
|
|
}
|
|
}
|
|
|
|
impl flatbuffers::SimpleToVerifyInSlice for AdvancedFeatures {}
|
|
pub enum TypeOffset {}
|
|
#[derive(Copy, Clone, PartialEq)]
|
|
|
|
pub struct Type<'a> {
|
|
pub _tab: flatbuffers::Table<'a>,
|
|
}
|
|
|
|
impl<'a> flatbuffers::Follow<'a> for Type<'a> {
|
|
type Inner = Type<'a>;
|
|
#[inline]
|
|
unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
|
|
Self { _tab: flatbuffers::Table::new(buf, loc) }
|
|
}
|
|
}
|
|
|
|
impl<'a> Type<'a> {
|
|
pub const VT_BASE_TYPE: flatbuffers::VOffsetT = 4;
|
|
pub const VT_ELEMENT: flatbuffers::VOffsetT = 6;
|
|
pub const VT_INDEX: flatbuffers::VOffsetT = 8;
|
|
pub const VT_FIXED_LENGTH: flatbuffers::VOffsetT = 10;
|
|
pub const VT_BASE_SIZE: flatbuffers::VOffsetT = 12;
|
|
pub const VT_ELEMENT_SIZE: flatbuffers::VOffsetT = 14;
|
|
|
|
#[inline]
|
|
pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
|
|
Type { _tab: table }
|
|
}
|
|
#[allow(unused_mut)]
|
|
pub fn create<
|
|
'bldr: 'args,
|
|
'args: 'mut_bldr,
|
|
'mut_bldr,
|
|
A: flatbuffers::Allocator + 'bldr,
|
|
>(
|
|
_fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr, A>,
|
|
args: &'args TypeArgs,
|
|
) -> flatbuffers::WIPOffset<Type<'bldr>> {
|
|
let mut builder = TypeBuilder::new(_fbb);
|
|
builder.add_element_size(args.element_size);
|
|
builder.add_base_size(args.base_size);
|
|
builder.add_index(args.index);
|
|
builder.add_fixed_length(args.fixed_length);
|
|
builder.add_element(args.element);
|
|
builder.add_base_type(args.base_type);
|
|
builder.finish()
|
|
}
|
|
|
|
#[inline]
|
|
pub fn base_type(&self) -> BaseType {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe { self._tab.get::<BaseType>(Type::VT_BASE_TYPE, Some(BaseType::None)).unwrap() }
|
|
}
|
|
#[inline]
|
|
pub fn element(&self) -> BaseType {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe { self._tab.get::<BaseType>(Type::VT_ELEMENT, Some(BaseType::None)).unwrap() }
|
|
}
|
|
#[inline]
|
|
pub fn index(&self) -> i32 {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe { self._tab.get::<i32>(Type::VT_INDEX, Some(-1)).unwrap() }
|
|
}
|
|
#[inline]
|
|
pub fn fixed_length(&self) -> u16 {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe { self._tab.get::<u16>(Type::VT_FIXED_LENGTH, Some(0)).unwrap() }
|
|
}
|
|
/// The size (octets) of the `base_type` field.
|
|
#[inline]
|
|
pub fn base_size(&self) -> u32 {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe { self._tab.get::<u32>(Type::VT_BASE_SIZE, Some(4)).unwrap() }
|
|
}
|
|
/// The size (octets) of the `element` field, if present.
|
|
#[inline]
|
|
pub fn element_size(&self) -> u32 {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe { self._tab.get::<u32>(Type::VT_ELEMENT_SIZE, Some(0)).unwrap() }
|
|
}
|
|
}
|
|
|
|
impl flatbuffers::Verifiable for Type<'_> {
|
|
#[inline]
|
|
fn run_verifier(
|
|
v: &mut flatbuffers::Verifier,
|
|
pos: usize,
|
|
) -> Result<(), flatbuffers::InvalidFlatbuffer> {
|
|
use self::flatbuffers::Verifiable;
|
|
v.visit_table(pos)?
|
|
.visit_field::<BaseType>("base_type", Self::VT_BASE_TYPE, false)?
|
|
.visit_field::<BaseType>("element", Self::VT_ELEMENT, false)?
|
|
.visit_field::<i32>("index", Self::VT_INDEX, false)?
|
|
.visit_field::<u16>("fixed_length", Self::VT_FIXED_LENGTH, false)?
|
|
.visit_field::<u32>("base_size", Self::VT_BASE_SIZE, false)?
|
|
.visit_field::<u32>("element_size", Self::VT_ELEMENT_SIZE, false)?
|
|
.finish();
|
|
Ok(())
|
|
}
|
|
}
|
|
pub struct TypeArgs {
|
|
pub base_type: BaseType,
|
|
pub element: BaseType,
|
|
pub index: i32,
|
|
pub fixed_length: u16,
|
|
pub base_size: u32,
|
|
pub element_size: u32,
|
|
}
|
|
impl<'a> Default for TypeArgs {
|
|
#[inline]
|
|
fn default() -> Self {
|
|
TypeArgs {
|
|
base_type: BaseType::None,
|
|
element: BaseType::None,
|
|
index: -1,
|
|
fixed_length: 0,
|
|
base_size: 4,
|
|
element_size: 0,
|
|
}
|
|
}
|
|
}
|
|
|
|
pub struct TypeBuilder<'a: 'b, 'b, A: flatbuffers::Allocator + 'a> {
|
|
fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a, A>,
|
|
start_: flatbuffers::WIPOffset<flatbuffers::TableUnfinishedWIPOffset>,
|
|
}
|
|
impl<'a: 'b, 'b, A: flatbuffers::Allocator + 'a> TypeBuilder<'a, 'b, A> {
|
|
#[inline]
|
|
pub fn add_base_type(&mut self, base_type: BaseType) {
|
|
self.fbb_.push_slot::<BaseType>(Type::VT_BASE_TYPE, base_type, BaseType::None);
|
|
}
|
|
#[inline]
|
|
pub fn add_element(&mut self, element: BaseType) {
|
|
self.fbb_.push_slot::<BaseType>(Type::VT_ELEMENT, element, BaseType::None);
|
|
}
|
|
#[inline]
|
|
pub fn add_index(&mut self, index: i32) {
|
|
self.fbb_.push_slot::<i32>(Type::VT_INDEX, index, -1);
|
|
}
|
|
#[inline]
|
|
pub fn add_fixed_length(&mut self, fixed_length: u16) {
|
|
self.fbb_.push_slot::<u16>(Type::VT_FIXED_LENGTH, fixed_length, 0);
|
|
}
|
|
#[inline]
|
|
pub fn add_base_size(&mut self, base_size: u32) {
|
|
self.fbb_.push_slot::<u32>(Type::VT_BASE_SIZE, base_size, 4);
|
|
}
|
|
#[inline]
|
|
pub fn add_element_size(&mut self, element_size: u32) {
|
|
self.fbb_.push_slot::<u32>(Type::VT_ELEMENT_SIZE, element_size, 0);
|
|
}
|
|
#[inline]
|
|
pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a, A>) -> TypeBuilder<'a, 'b, A> {
|
|
let start = _fbb.start_table();
|
|
TypeBuilder { fbb_: _fbb, start_: start }
|
|
}
|
|
#[inline]
|
|
pub fn finish(self) -> flatbuffers::WIPOffset<Type<'a>> {
|
|
let o = self.fbb_.end_table(self.start_);
|
|
flatbuffers::WIPOffset::new(o.value())
|
|
}
|
|
}
|
|
|
|
impl core::fmt::Debug for Type<'_> {
|
|
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
|
|
let mut ds = f.debug_struct("Type");
|
|
ds.field("base_type", &self.base_type());
|
|
ds.field("element", &self.element());
|
|
ds.field("index", &self.index());
|
|
ds.field("fixed_length", &self.fixed_length());
|
|
ds.field("base_size", &self.base_size());
|
|
ds.field("element_size", &self.element_size());
|
|
ds.finish()
|
|
}
|
|
}
|
|
pub enum KeyValueOffset {}
|
|
#[derive(Copy, Clone, PartialEq)]
|
|
|
|
pub struct KeyValue<'a> {
|
|
pub _tab: flatbuffers::Table<'a>,
|
|
}
|
|
|
|
impl<'a> flatbuffers::Follow<'a> for KeyValue<'a> {
|
|
type Inner = KeyValue<'a>;
|
|
#[inline]
|
|
unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
|
|
Self { _tab: flatbuffers::Table::new(buf, loc) }
|
|
}
|
|
}
|
|
|
|
impl<'a> KeyValue<'a> {
|
|
pub const VT_KEY: flatbuffers::VOffsetT = 4;
|
|
pub const VT_VALUE: flatbuffers::VOffsetT = 6;
|
|
|
|
#[inline]
|
|
pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
|
|
KeyValue { _tab: table }
|
|
}
|
|
#[allow(unused_mut)]
|
|
pub fn create<
|
|
'bldr: 'args,
|
|
'args: 'mut_bldr,
|
|
'mut_bldr,
|
|
A: flatbuffers::Allocator + 'bldr,
|
|
>(
|
|
_fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr, A>,
|
|
args: &'args KeyValueArgs<'args>,
|
|
) -> flatbuffers::WIPOffset<KeyValue<'bldr>> {
|
|
let mut builder = KeyValueBuilder::new(_fbb);
|
|
if let Some(x) = args.value {
|
|
builder.add_value(x);
|
|
}
|
|
if let Some(x) = args.key {
|
|
builder.add_key(x);
|
|
}
|
|
builder.finish()
|
|
}
|
|
|
|
#[inline]
|
|
pub fn key(&self) -> &'a str {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(KeyValue::VT_KEY, None).unwrap()
|
|
}
|
|
}
|
|
#[inline]
|
|
pub fn key_compare_less_than(&self, o: &KeyValue) -> bool {
|
|
self.key() < o.key()
|
|
}
|
|
|
|
#[inline]
|
|
pub fn key_compare_with_value(&self, val: &str) -> ::core::cmp::Ordering {
|
|
let key = self.key();
|
|
key.cmp(val)
|
|
}
|
|
#[inline]
|
|
pub fn value(&self) -> Option<&'a str> {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(KeyValue::VT_VALUE, None) }
|
|
}
|
|
}
|
|
|
|
impl flatbuffers::Verifiable for KeyValue<'_> {
|
|
#[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>>("key", Self::VT_KEY, true)?
|
|
.visit_field::<flatbuffers::ForwardsUOffset<&str>>("value", Self::VT_VALUE, false)?
|
|
.finish();
|
|
Ok(())
|
|
}
|
|
}
|
|
pub struct KeyValueArgs<'a> {
|
|
pub key: Option<flatbuffers::WIPOffset<&'a str>>,
|
|
pub value: Option<flatbuffers::WIPOffset<&'a str>>,
|
|
}
|
|
impl<'a> Default for KeyValueArgs<'a> {
|
|
#[inline]
|
|
fn default() -> Self {
|
|
KeyValueArgs {
|
|
key: None, // required field
|
|
value: None,
|
|
}
|
|
}
|
|
}
|
|
|
|
pub struct KeyValueBuilder<'a: 'b, 'b, A: flatbuffers::Allocator + 'a> {
|
|
fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a, A>,
|
|
start_: flatbuffers::WIPOffset<flatbuffers::TableUnfinishedWIPOffset>,
|
|
}
|
|
impl<'a: 'b, 'b, A: flatbuffers::Allocator + 'a> KeyValueBuilder<'a, 'b, A> {
|
|
#[inline]
|
|
pub fn add_key(&mut self, key: flatbuffers::WIPOffset<&'b str>) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(KeyValue::VT_KEY, key);
|
|
}
|
|
#[inline]
|
|
pub fn add_value(&mut self, value: flatbuffers::WIPOffset<&'b str>) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(KeyValue::VT_VALUE, value);
|
|
}
|
|
#[inline]
|
|
pub fn new(
|
|
_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a, A>,
|
|
) -> KeyValueBuilder<'a, 'b, A> {
|
|
let start = _fbb.start_table();
|
|
KeyValueBuilder { fbb_: _fbb, start_: start }
|
|
}
|
|
#[inline]
|
|
pub fn finish(self) -> flatbuffers::WIPOffset<KeyValue<'a>> {
|
|
let o = self.fbb_.end_table(self.start_);
|
|
self.fbb_.required(o, KeyValue::VT_KEY, "key");
|
|
flatbuffers::WIPOffset::new(o.value())
|
|
}
|
|
}
|
|
|
|
impl core::fmt::Debug for KeyValue<'_> {
|
|
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
|
|
let mut ds = f.debug_struct("KeyValue");
|
|
ds.field("key", &self.key());
|
|
ds.field("value", &self.value());
|
|
ds.finish()
|
|
}
|
|
}
|
|
pub enum EnumValOffset {}
|
|
#[derive(Copy, Clone, PartialEq)]
|
|
|
|
pub struct EnumVal<'a> {
|
|
pub _tab: flatbuffers::Table<'a>,
|
|
}
|
|
|
|
impl<'a> flatbuffers::Follow<'a> for EnumVal<'a> {
|
|
type Inner = EnumVal<'a>;
|
|
#[inline]
|
|
unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
|
|
Self { _tab: flatbuffers::Table::new(buf, loc) }
|
|
}
|
|
}
|
|
|
|
impl<'a> EnumVal<'a> {
|
|
pub const VT_NAME: flatbuffers::VOffsetT = 4;
|
|
pub const VT_VALUE: flatbuffers::VOffsetT = 6;
|
|
pub const VT_UNION_TYPE: flatbuffers::VOffsetT = 10;
|
|
pub const VT_DOCUMENTATION: flatbuffers::VOffsetT = 12;
|
|
pub const VT_ATTRIBUTES: flatbuffers::VOffsetT = 14;
|
|
|
|
#[inline]
|
|
pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
|
|
EnumVal { _tab: table }
|
|
}
|
|
#[allow(unused_mut)]
|
|
pub fn create<
|
|
'bldr: 'args,
|
|
'args: 'mut_bldr,
|
|
'mut_bldr,
|
|
A: flatbuffers::Allocator + 'bldr,
|
|
>(
|
|
_fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr, A>,
|
|
args: &'args EnumValArgs<'args>,
|
|
) -> flatbuffers::WIPOffset<EnumVal<'bldr>> {
|
|
let mut builder = EnumValBuilder::new(_fbb);
|
|
builder.add_value(args.value);
|
|
if let Some(x) = args.attributes {
|
|
builder.add_attributes(x);
|
|
}
|
|
if let Some(x) = args.documentation {
|
|
builder.add_documentation(x);
|
|
}
|
|
if let Some(x) = args.union_type {
|
|
builder.add_union_type(x);
|
|
}
|
|
if let Some(x) = args.name {
|
|
builder.add_name(x);
|
|
}
|
|
builder.finish()
|
|
}
|
|
|
|
#[inline]
|
|
pub fn name(&self) -> &'a str {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(EnumVal::VT_NAME, None).unwrap()
|
|
}
|
|
}
|
|
#[inline]
|
|
pub fn value(&self) -> i64 {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe { self._tab.get::<i64>(EnumVal::VT_VALUE, Some(0)).unwrap() }
|
|
}
|
|
#[inline]
|
|
pub fn key_compare_less_than(&self, o: &EnumVal) -> bool {
|
|
self.value() < o.value()
|
|
}
|
|
|
|
#[inline]
|
|
pub fn key_compare_with_value(&self, val: i64) -> ::core::cmp::Ordering {
|
|
let key = self.value();
|
|
key.cmp(&val)
|
|
}
|
|
#[inline]
|
|
pub fn union_type(&self) -> Option<Type<'a>> {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<Type>>(EnumVal::VT_UNION_TYPE, None)
|
|
}
|
|
}
|
|
#[inline]
|
|
pub fn documentation(
|
|
&self,
|
|
) -> Option<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<&'a str>>> {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<
|
|
flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<&'a str>>,
|
|
>>(EnumVal::VT_DOCUMENTATION, None)
|
|
}
|
|
}
|
|
#[inline]
|
|
pub fn attributes(
|
|
&self,
|
|
) -> Option<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<KeyValue<'a>>>> {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<
|
|
flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<KeyValue>>,
|
|
>>(EnumVal::VT_ATTRIBUTES, None)
|
|
}
|
|
}
|
|
}
|
|
|
|
impl flatbuffers::Verifiable for EnumVal<'_> {
|
|
#[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>>("name", Self::VT_NAME, true)?
|
|
.visit_field::<i64>("value", Self::VT_VALUE, false)?
|
|
.visit_field::<flatbuffers::ForwardsUOffset<Type>>(
|
|
"union_type",
|
|
Self::VT_UNION_TYPE,
|
|
false,
|
|
)?
|
|
.visit_field::<flatbuffers::ForwardsUOffset<
|
|
flatbuffers::Vector<'_, flatbuffers::ForwardsUOffset<&'_ str>>,
|
|
>>("documentation", Self::VT_DOCUMENTATION, false)?
|
|
.visit_field::<flatbuffers::ForwardsUOffset<
|
|
flatbuffers::Vector<'_, flatbuffers::ForwardsUOffset<KeyValue>>,
|
|
>>("attributes", Self::VT_ATTRIBUTES, false)?
|
|
.finish();
|
|
Ok(())
|
|
}
|
|
}
|
|
pub struct EnumValArgs<'a> {
|
|
pub name: Option<flatbuffers::WIPOffset<&'a str>>,
|
|
pub value: i64,
|
|
pub union_type: Option<flatbuffers::WIPOffset<Type<'a>>>,
|
|
pub documentation: Option<
|
|
flatbuffers::WIPOffset<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<&'a str>>>,
|
|
>,
|
|
pub attributes: Option<
|
|
flatbuffers::WIPOffset<
|
|
flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<KeyValue<'a>>>,
|
|
>,
|
|
>,
|
|
}
|
|
impl<'a> Default for EnumValArgs<'a> {
|
|
#[inline]
|
|
fn default() -> Self {
|
|
EnumValArgs {
|
|
name: None, // required field
|
|
value: 0,
|
|
union_type: None,
|
|
documentation: None,
|
|
attributes: None,
|
|
}
|
|
}
|
|
}
|
|
|
|
pub struct EnumValBuilder<'a: 'b, 'b, A: flatbuffers::Allocator + 'a> {
|
|
fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a, A>,
|
|
start_: flatbuffers::WIPOffset<flatbuffers::TableUnfinishedWIPOffset>,
|
|
}
|
|
impl<'a: 'b, 'b, A: flatbuffers::Allocator + 'a> EnumValBuilder<'a, 'b, A> {
|
|
#[inline]
|
|
pub fn add_name(&mut self, name: flatbuffers::WIPOffset<&'b str>) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(EnumVal::VT_NAME, name);
|
|
}
|
|
#[inline]
|
|
pub fn add_value(&mut self, value: i64) {
|
|
self.fbb_.push_slot::<i64>(EnumVal::VT_VALUE, value, 0);
|
|
}
|
|
#[inline]
|
|
pub fn add_union_type(&mut self, union_type: flatbuffers::WIPOffset<Type<'b>>) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<Type>>(
|
|
EnumVal::VT_UNION_TYPE,
|
|
union_type,
|
|
);
|
|
}
|
|
#[inline]
|
|
pub fn add_documentation(
|
|
&mut self,
|
|
documentation: flatbuffers::WIPOffset<
|
|
flatbuffers::Vector<'b, flatbuffers::ForwardsUOffset<&'b str>>,
|
|
>,
|
|
) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(
|
|
EnumVal::VT_DOCUMENTATION,
|
|
documentation,
|
|
);
|
|
}
|
|
#[inline]
|
|
pub fn add_attributes(
|
|
&mut self,
|
|
attributes: flatbuffers::WIPOffset<
|
|
flatbuffers::Vector<'b, flatbuffers::ForwardsUOffset<KeyValue<'b>>>,
|
|
>,
|
|
) {
|
|
self.fbb_
|
|
.push_slot_always::<flatbuffers::WIPOffset<_>>(EnumVal::VT_ATTRIBUTES, attributes);
|
|
}
|
|
#[inline]
|
|
pub fn new(
|
|
_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a, A>,
|
|
) -> EnumValBuilder<'a, 'b, A> {
|
|
let start = _fbb.start_table();
|
|
EnumValBuilder { fbb_: _fbb, start_: start }
|
|
}
|
|
#[inline]
|
|
pub fn finish(self) -> flatbuffers::WIPOffset<EnumVal<'a>> {
|
|
let o = self.fbb_.end_table(self.start_);
|
|
self.fbb_.required(o, EnumVal::VT_NAME, "name");
|
|
flatbuffers::WIPOffset::new(o.value())
|
|
}
|
|
}
|
|
|
|
impl core::fmt::Debug for EnumVal<'_> {
|
|
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
|
|
let mut ds = f.debug_struct("EnumVal");
|
|
ds.field("name", &self.name());
|
|
ds.field("value", &self.value());
|
|
ds.field("union_type", &self.union_type());
|
|
ds.field("documentation", &self.documentation());
|
|
ds.field("attributes", &self.attributes());
|
|
ds.finish()
|
|
}
|
|
}
|
|
pub enum EnumOffset {}
|
|
#[derive(Copy, Clone, PartialEq)]
|
|
|
|
pub struct Enum<'a> {
|
|
pub _tab: flatbuffers::Table<'a>,
|
|
}
|
|
|
|
impl<'a> flatbuffers::Follow<'a> for Enum<'a> {
|
|
type Inner = Enum<'a>;
|
|
#[inline]
|
|
unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
|
|
Self { _tab: flatbuffers::Table::new(buf, loc) }
|
|
}
|
|
}
|
|
|
|
impl<'a> Enum<'a> {
|
|
pub const VT_NAME: flatbuffers::VOffsetT = 4;
|
|
pub const VT_VALUES: flatbuffers::VOffsetT = 6;
|
|
pub const VT_IS_UNION: flatbuffers::VOffsetT = 8;
|
|
pub const VT_UNDERLYING_TYPE: flatbuffers::VOffsetT = 10;
|
|
pub const VT_ATTRIBUTES: flatbuffers::VOffsetT = 12;
|
|
pub const VT_DOCUMENTATION: flatbuffers::VOffsetT = 14;
|
|
pub const VT_DECLARATION_FILE: flatbuffers::VOffsetT = 16;
|
|
|
|
#[inline]
|
|
pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
|
|
Enum { _tab: table }
|
|
}
|
|
#[allow(unused_mut)]
|
|
pub fn create<
|
|
'bldr: 'args,
|
|
'args: 'mut_bldr,
|
|
'mut_bldr,
|
|
A: flatbuffers::Allocator + 'bldr,
|
|
>(
|
|
_fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr, A>,
|
|
args: &'args EnumArgs<'args>,
|
|
) -> flatbuffers::WIPOffset<Enum<'bldr>> {
|
|
let mut builder = EnumBuilder::new(_fbb);
|
|
if let Some(x) = args.declaration_file {
|
|
builder.add_declaration_file(x);
|
|
}
|
|
if let Some(x) = args.documentation {
|
|
builder.add_documentation(x);
|
|
}
|
|
if let Some(x) = args.attributes {
|
|
builder.add_attributes(x);
|
|
}
|
|
if let Some(x) = args.underlying_type {
|
|
builder.add_underlying_type(x);
|
|
}
|
|
if let Some(x) = args.values {
|
|
builder.add_values(x);
|
|
}
|
|
if let Some(x) = args.name {
|
|
builder.add_name(x);
|
|
}
|
|
builder.add_is_union(args.is_union);
|
|
builder.finish()
|
|
}
|
|
|
|
#[inline]
|
|
pub fn name(&self) -> &'a str {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(Enum::VT_NAME, None).unwrap()
|
|
}
|
|
}
|
|
#[inline]
|
|
pub fn key_compare_less_than(&self, o: &Enum) -> bool {
|
|
self.name() < o.name()
|
|
}
|
|
|
|
#[inline]
|
|
pub fn key_compare_with_value(&self, val: &str) -> ::core::cmp::Ordering {
|
|
let key = self.name();
|
|
key.cmp(val)
|
|
}
|
|
#[inline]
|
|
pub fn values(&self) -> flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<EnumVal<'a>>> {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe {
|
|
self._tab
|
|
.get::<flatbuffers::ForwardsUOffset<
|
|
flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<EnumVal>>,
|
|
>>(Enum::VT_VALUES, None)
|
|
.unwrap()
|
|
}
|
|
}
|
|
#[inline]
|
|
pub fn is_union(&self) -> bool {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe { self._tab.get::<bool>(Enum::VT_IS_UNION, Some(false)).unwrap() }
|
|
}
|
|
#[inline]
|
|
pub fn underlying_type(&self) -> Type<'a> {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe {
|
|
self._tab
|
|
.get::<flatbuffers::ForwardsUOffset<Type>>(Enum::VT_UNDERLYING_TYPE, None)
|
|
.unwrap()
|
|
}
|
|
}
|
|
#[inline]
|
|
pub fn attributes(
|
|
&self,
|
|
) -> Option<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<KeyValue<'a>>>> {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<
|
|
flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<KeyValue>>,
|
|
>>(Enum::VT_ATTRIBUTES, None)
|
|
}
|
|
}
|
|
#[inline]
|
|
pub fn documentation(
|
|
&self,
|
|
) -> Option<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<&'a str>>> {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<
|
|
flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<&'a str>>,
|
|
>>(Enum::VT_DOCUMENTATION, None)
|
|
}
|
|
}
|
|
/// File that this Enum is declared in.
|
|
#[inline]
|
|
pub fn declaration_file(&self) -> Option<&'a str> {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(Enum::VT_DECLARATION_FILE, None)
|
|
}
|
|
}
|
|
}
|
|
|
|
impl flatbuffers::Verifiable for Enum<'_> {
|
|
#[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>>("name", Self::VT_NAME, true)?
|
|
.visit_field::<flatbuffers::ForwardsUOffset<
|
|
flatbuffers::Vector<'_, flatbuffers::ForwardsUOffset<EnumVal>>,
|
|
>>("values", Self::VT_VALUES, true)?
|
|
.visit_field::<bool>("is_union", Self::VT_IS_UNION, false)?
|
|
.visit_field::<flatbuffers::ForwardsUOffset<Type>>(
|
|
"underlying_type",
|
|
Self::VT_UNDERLYING_TYPE,
|
|
true,
|
|
)?
|
|
.visit_field::<flatbuffers::ForwardsUOffset<
|
|
flatbuffers::Vector<'_, flatbuffers::ForwardsUOffset<KeyValue>>,
|
|
>>("attributes", Self::VT_ATTRIBUTES, false)?
|
|
.visit_field::<flatbuffers::ForwardsUOffset<
|
|
flatbuffers::Vector<'_, flatbuffers::ForwardsUOffset<&'_ str>>,
|
|
>>("documentation", Self::VT_DOCUMENTATION, false)?
|
|
.visit_field::<flatbuffers::ForwardsUOffset<&str>>(
|
|
"declaration_file",
|
|
Self::VT_DECLARATION_FILE,
|
|
false,
|
|
)?
|
|
.finish();
|
|
Ok(())
|
|
}
|
|
}
|
|
pub struct EnumArgs<'a> {
|
|
pub name: Option<flatbuffers::WIPOffset<&'a str>>,
|
|
pub values: Option<
|
|
flatbuffers::WIPOffset<
|
|
flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<EnumVal<'a>>>,
|
|
>,
|
|
>,
|
|
pub is_union: bool,
|
|
pub underlying_type: Option<flatbuffers::WIPOffset<Type<'a>>>,
|
|
pub attributes: Option<
|
|
flatbuffers::WIPOffset<
|
|
flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<KeyValue<'a>>>,
|
|
>,
|
|
>,
|
|
pub documentation: Option<
|
|
flatbuffers::WIPOffset<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<&'a str>>>,
|
|
>,
|
|
pub declaration_file: Option<flatbuffers::WIPOffset<&'a str>>,
|
|
}
|
|
impl<'a> Default for EnumArgs<'a> {
|
|
#[inline]
|
|
fn default() -> Self {
|
|
EnumArgs {
|
|
name: None, // required field
|
|
values: None, // required field
|
|
is_union: false,
|
|
underlying_type: None, // required field
|
|
attributes: None,
|
|
documentation: None,
|
|
declaration_file: None,
|
|
}
|
|
}
|
|
}
|
|
|
|
pub struct EnumBuilder<'a: 'b, 'b, A: flatbuffers::Allocator + 'a> {
|
|
fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a, A>,
|
|
start_: flatbuffers::WIPOffset<flatbuffers::TableUnfinishedWIPOffset>,
|
|
}
|
|
impl<'a: 'b, 'b, A: flatbuffers::Allocator + 'a> EnumBuilder<'a, 'b, A> {
|
|
#[inline]
|
|
pub fn add_name(&mut self, name: flatbuffers::WIPOffset<&'b str>) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Enum::VT_NAME, name);
|
|
}
|
|
#[inline]
|
|
pub fn add_values(
|
|
&mut self,
|
|
values: flatbuffers::WIPOffset<
|
|
flatbuffers::Vector<'b, flatbuffers::ForwardsUOffset<EnumVal<'b>>>,
|
|
>,
|
|
) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Enum::VT_VALUES, values);
|
|
}
|
|
#[inline]
|
|
pub fn add_is_union(&mut self, is_union: bool) {
|
|
self.fbb_.push_slot::<bool>(Enum::VT_IS_UNION, is_union, false);
|
|
}
|
|
#[inline]
|
|
pub fn add_underlying_type(&mut self, underlying_type: flatbuffers::WIPOffset<Type<'b>>) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<Type>>(
|
|
Enum::VT_UNDERLYING_TYPE,
|
|
underlying_type,
|
|
);
|
|
}
|
|
#[inline]
|
|
pub fn add_attributes(
|
|
&mut self,
|
|
attributes: flatbuffers::WIPOffset<
|
|
flatbuffers::Vector<'b, flatbuffers::ForwardsUOffset<KeyValue<'b>>>,
|
|
>,
|
|
) {
|
|
self.fbb_
|
|
.push_slot_always::<flatbuffers::WIPOffset<_>>(Enum::VT_ATTRIBUTES, attributes);
|
|
}
|
|
#[inline]
|
|
pub fn add_documentation(
|
|
&mut self,
|
|
documentation: flatbuffers::WIPOffset<
|
|
flatbuffers::Vector<'b, flatbuffers::ForwardsUOffset<&'b str>>,
|
|
>,
|
|
) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(
|
|
Enum::VT_DOCUMENTATION,
|
|
documentation,
|
|
);
|
|
}
|
|
#[inline]
|
|
pub fn add_declaration_file(&mut self, declaration_file: flatbuffers::WIPOffset<&'b str>) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(
|
|
Enum::VT_DECLARATION_FILE,
|
|
declaration_file,
|
|
);
|
|
}
|
|
#[inline]
|
|
pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a, A>) -> EnumBuilder<'a, 'b, A> {
|
|
let start = _fbb.start_table();
|
|
EnumBuilder { fbb_: _fbb, start_: start }
|
|
}
|
|
#[inline]
|
|
pub fn finish(self) -> flatbuffers::WIPOffset<Enum<'a>> {
|
|
let o = self.fbb_.end_table(self.start_);
|
|
self.fbb_.required(o, Enum::VT_NAME, "name");
|
|
self.fbb_.required(o, Enum::VT_VALUES, "values");
|
|
self.fbb_.required(o, Enum::VT_UNDERLYING_TYPE, "underlying_type");
|
|
flatbuffers::WIPOffset::new(o.value())
|
|
}
|
|
}
|
|
|
|
impl core::fmt::Debug for Enum<'_> {
|
|
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
|
|
let mut ds = f.debug_struct("Enum");
|
|
ds.field("name", &self.name());
|
|
ds.field("values", &self.values());
|
|
ds.field("is_union", &self.is_union());
|
|
ds.field("underlying_type", &self.underlying_type());
|
|
ds.field("attributes", &self.attributes());
|
|
ds.field("documentation", &self.documentation());
|
|
ds.field("declaration_file", &self.declaration_file());
|
|
ds.finish()
|
|
}
|
|
}
|
|
pub enum FieldOffset {}
|
|
#[derive(Copy, Clone, PartialEq)]
|
|
|
|
pub struct Field<'a> {
|
|
pub _tab: flatbuffers::Table<'a>,
|
|
}
|
|
|
|
impl<'a> flatbuffers::Follow<'a> for Field<'a> {
|
|
type Inner = Field<'a>;
|
|
#[inline]
|
|
unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
|
|
Self { _tab: flatbuffers::Table::new(buf, loc) }
|
|
}
|
|
}
|
|
|
|
impl<'a> Field<'a> {
|
|
pub const VT_NAME: flatbuffers::VOffsetT = 4;
|
|
pub const VT_TYPE_: flatbuffers::VOffsetT = 6;
|
|
pub const VT_ID: flatbuffers::VOffsetT = 8;
|
|
pub const VT_OFFSET: flatbuffers::VOffsetT = 10;
|
|
pub const VT_DEFAULT_INTEGER: flatbuffers::VOffsetT = 12;
|
|
pub const VT_DEFAULT_REAL: flatbuffers::VOffsetT = 14;
|
|
pub const VT_DEPRECATED: flatbuffers::VOffsetT = 16;
|
|
pub const VT_REQUIRED: flatbuffers::VOffsetT = 18;
|
|
pub const VT_KEY: flatbuffers::VOffsetT = 20;
|
|
pub const VT_ATTRIBUTES: flatbuffers::VOffsetT = 22;
|
|
pub const VT_DOCUMENTATION: flatbuffers::VOffsetT = 24;
|
|
pub const VT_OPTIONAL: flatbuffers::VOffsetT = 26;
|
|
pub const VT_PADDING: flatbuffers::VOffsetT = 28;
|
|
pub const VT_OFFSET64: flatbuffers::VOffsetT = 30;
|
|
|
|
#[inline]
|
|
pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
|
|
Field { _tab: table }
|
|
}
|
|
#[allow(unused_mut)]
|
|
pub fn create<
|
|
'bldr: 'args,
|
|
'args: 'mut_bldr,
|
|
'mut_bldr,
|
|
A: flatbuffers::Allocator + 'bldr,
|
|
>(
|
|
_fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr, A>,
|
|
args: &'args FieldArgs<'args>,
|
|
) -> flatbuffers::WIPOffset<Field<'bldr>> {
|
|
let mut builder = FieldBuilder::new(_fbb);
|
|
builder.add_default_real(args.default_real);
|
|
builder.add_default_integer(args.default_integer);
|
|
if let Some(x) = args.documentation {
|
|
builder.add_documentation(x);
|
|
}
|
|
if let Some(x) = args.attributes {
|
|
builder.add_attributes(x);
|
|
}
|
|
if let Some(x) = args.type_ {
|
|
builder.add_type_(x);
|
|
}
|
|
if let Some(x) = args.name {
|
|
builder.add_name(x);
|
|
}
|
|
builder.add_padding(args.padding);
|
|
builder.add_offset(args.offset);
|
|
builder.add_id(args.id);
|
|
builder.add_offset64(args.offset64);
|
|
builder.add_optional(args.optional);
|
|
builder.add_key(args.key);
|
|
builder.add_required(args.required);
|
|
builder.add_deprecated(args.deprecated);
|
|
builder.finish()
|
|
}
|
|
|
|
#[inline]
|
|
pub fn name(&self) -> &'a str {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(Field::VT_NAME, None).unwrap()
|
|
}
|
|
}
|
|
#[inline]
|
|
pub fn key_compare_less_than(&self, o: &Field) -> bool {
|
|
self.name() < o.name()
|
|
}
|
|
|
|
#[inline]
|
|
pub fn key_compare_with_value(&self, val: &str) -> ::core::cmp::Ordering {
|
|
let key = self.name();
|
|
key.cmp(val)
|
|
}
|
|
#[inline]
|
|
pub fn type_(&self) -> Type<'a> {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<Type>>(Field::VT_TYPE_, None).unwrap()
|
|
}
|
|
}
|
|
#[inline]
|
|
pub fn id(&self) -> u16 {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe { self._tab.get::<u16>(Field::VT_ID, Some(0)).unwrap() }
|
|
}
|
|
#[inline]
|
|
pub fn offset(&self) -> u16 {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe { self._tab.get::<u16>(Field::VT_OFFSET, Some(0)).unwrap() }
|
|
}
|
|
#[inline]
|
|
pub fn default_integer(&self) -> i64 {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe { self._tab.get::<i64>(Field::VT_DEFAULT_INTEGER, Some(0)).unwrap() }
|
|
}
|
|
#[inline]
|
|
pub fn default_real(&self) -> f64 {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe { self._tab.get::<f64>(Field::VT_DEFAULT_REAL, Some(0.0)).unwrap() }
|
|
}
|
|
#[inline]
|
|
pub fn deprecated(&self) -> bool {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe { self._tab.get::<bool>(Field::VT_DEPRECATED, Some(false)).unwrap() }
|
|
}
|
|
#[inline]
|
|
pub fn required(&self) -> bool {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe { self._tab.get::<bool>(Field::VT_REQUIRED, Some(false)).unwrap() }
|
|
}
|
|
#[inline]
|
|
pub fn key(&self) -> bool {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe { self._tab.get::<bool>(Field::VT_KEY, Some(false)).unwrap() }
|
|
}
|
|
#[inline]
|
|
pub fn attributes(
|
|
&self,
|
|
) -> Option<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<KeyValue<'a>>>> {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<
|
|
flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<KeyValue>>,
|
|
>>(Field::VT_ATTRIBUTES, None)
|
|
}
|
|
}
|
|
#[inline]
|
|
pub fn documentation(
|
|
&self,
|
|
) -> Option<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<&'a str>>> {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<
|
|
flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<&'a str>>,
|
|
>>(Field::VT_DOCUMENTATION, None)
|
|
}
|
|
}
|
|
#[inline]
|
|
pub fn optional(&self) -> bool {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe { self._tab.get::<bool>(Field::VT_OPTIONAL, Some(false)).unwrap() }
|
|
}
|
|
/// Number of padding octets to always add after this field. Structs only.
|
|
#[inline]
|
|
pub fn padding(&self) -> u16 {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe { self._tab.get::<u16>(Field::VT_PADDING, Some(0)).unwrap() }
|
|
}
|
|
/// If the field uses 64-bit offsets.
|
|
#[inline]
|
|
pub fn offset64(&self) -> bool {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe { self._tab.get::<bool>(Field::VT_OFFSET64, Some(false)).unwrap() }
|
|
}
|
|
}
|
|
|
|
impl flatbuffers::Verifiable for Field<'_> {
|
|
#[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>>("name", Self::VT_NAME, true)?
|
|
.visit_field::<flatbuffers::ForwardsUOffset<Type>>("type_", Self::VT_TYPE_, true)?
|
|
.visit_field::<u16>("id", Self::VT_ID, false)?
|
|
.visit_field::<u16>("offset", Self::VT_OFFSET, false)?
|
|
.visit_field::<i64>("default_integer", Self::VT_DEFAULT_INTEGER, false)?
|
|
.visit_field::<f64>("default_real", Self::VT_DEFAULT_REAL, false)?
|
|
.visit_field::<bool>("deprecated", Self::VT_DEPRECATED, false)?
|
|
.visit_field::<bool>("required", Self::VT_REQUIRED, false)?
|
|
.visit_field::<bool>("key", Self::VT_KEY, false)?
|
|
.visit_field::<flatbuffers::ForwardsUOffset<
|
|
flatbuffers::Vector<'_, flatbuffers::ForwardsUOffset<KeyValue>>,
|
|
>>("attributes", Self::VT_ATTRIBUTES, false)?
|
|
.visit_field::<flatbuffers::ForwardsUOffset<
|
|
flatbuffers::Vector<'_, flatbuffers::ForwardsUOffset<&'_ str>>,
|
|
>>("documentation", Self::VT_DOCUMENTATION, false)?
|
|
.visit_field::<bool>("optional", Self::VT_OPTIONAL, false)?
|
|
.visit_field::<u16>("padding", Self::VT_PADDING, false)?
|
|
.visit_field::<bool>("offset64", Self::VT_OFFSET64, false)?
|
|
.finish();
|
|
Ok(())
|
|
}
|
|
}
|
|
pub struct FieldArgs<'a> {
|
|
pub name: Option<flatbuffers::WIPOffset<&'a str>>,
|
|
pub type_: Option<flatbuffers::WIPOffset<Type<'a>>>,
|
|
pub id: u16,
|
|
pub offset: u16,
|
|
pub default_integer: i64,
|
|
pub default_real: f64,
|
|
pub deprecated: bool,
|
|
pub required: bool,
|
|
pub key: bool,
|
|
pub attributes: Option<
|
|
flatbuffers::WIPOffset<
|
|
flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<KeyValue<'a>>>,
|
|
>,
|
|
>,
|
|
pub documentation: Option<
|
|
flatbuffers::WIPOffset<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<&'a str>>>,
|
|
>,
|
|
pub optional: bool,
|
|
pub padding: u16,
|
|
pub offset64: bool,
|
|
}
|
|
impl<'a> Default for FieldArgs<'a> {
|
|
#[inline]
|
|
fn default() -> Self {
|
|
FieldArgs {
|
|
name: None, // required field
|
|
type_: None, // required field
|
|
id: 0,
|
|
offset: 0,
|
|
default_integer: 0,
|
|
default_real: 0.0,
|
|
deprecated: false,
|
|
required: false,
|
|
key: false,
|
|
attributes: None,
|
|
documentation: None,
|
|
optional: false,
|
|
padding: 0,
|
|
offset64: false,
|
|
}
|
|
}
|
|
}
|
|
|
|
pub struct FieldBuilder<'a: 'b, 'b, A: flatbuffers::Allocator + 'a> {
|
|
fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a, A>,
|
|
start_: flatbuffers::WIPOffset<flatbuffers::TableUnfinishedWIPOffset>,
|
|
}
|
|
impl<'a: 'b, 'b, A: flatbuffers::Allocator + 'a> FieldBuilder<'a, 'b, A> {
|
|
#[inline]
|
|
pub fn add_name(&mut self, name: flatbuffers::WIPOffset<&'b str>) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Field::VT_NAME, name);
|
|
}
|
|
#[inline]
|
|
pub fn add_type_(&mut self, type_: flatbuffers::WIPOffset<Type<'b>>) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<Type>>(Field::VT_TYPE_, type_);
|
|
}
|
|
#[inline]
|
|
pub fn add_id(&mut self, id: u16) {
|
|
self.fbb_.push_slot::<u16>(Field::VT_ID, id, 0);
|
|
}
|
|
#[inline]
|
|
pub fn add_offset(&mut self, offset: u16) {
|
|
self.fbb_.push_slot::<u16>(Field::VT_OFFSET, offset, 0);
|
|
}
|
|
#[inline]
|
|
pub fn add_default_integer(&mut self, default_integer: i64) {
|
|
self.fbb_.push_slot::<i64>(Field::VT_DEFAULT_INTEGER, default_integer, 0);
|
|
}
|
|
#[inline]
|
|
pub fn add_default_real(&mut self, default_real: f64) {
|
|
self.fbb_.push_slot::<f64>(Field::VT_DEFAULT_REAL, default_real, 0.0);
|
|
}
|
|
#[inline]
|
|
pub fn add_deprecated(&mut self, deprecated: bool) {
|
|
self.fbb_.push_slot::<bool>(Field::VT_DEPRECATED, deprecated, false);
|
|
}
|
|
#[inline]
|
|
pub fn add_required(&mut self, required: bool) {
|
|
self.fbb_.push_slot::<bool>(Field::VT_REQUIRED, required, false);
|
|
}
|
|
#[inline]
|
|
pub fn add_key(&mut self, key: bool) {
|
|
self.fbb_.push_slot::<bool>(Field::VT_KEY, key, false);
|
|
}
|
|
#[inline]
|
|
pub fn add_attributes(
|
|
&mut self,
|
|
attributes: flatbuffers::WIPOffset<
|
|
flatbuffers::Vector<'b, flatbuffers::ForwardsUOffset<KeyValue<'b>>>,
|
|
>,
|
|
) {
|
|
self.fbb_
|
|
.push_slot_always::<flatbuffers::WIPOffset<_>>(Field::VT_ATTRIBUTES, attributes);
|
|
}
|
|
#[inline]
|
|
pub fn add_documentation(
|
|
&mut self,
|
|
documentation: flatbuffers::WIPOffset<
|
|
flatbuffers::Vector<'b, flatbuffers::ForwardsUOffset<&'b str>>,
|
|
>,
|
|
) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(
|
|
Field::VT_DOCUMENTATION,
|
|
documentation,
|
|
);
|
|
}
|
|
#[inline]
|
|
pub fn add_optional(&mut self, optional: bool) {
|
|
self.fbb_.push_slot::<bool>(Field::VT_OPTIONAL, optional, false);
|
|
}
|
|
#[inline]
|
|
pub fn add_padding(&mut self, padding: u16) {
|
|
self.fbb_.push_slot::<u16>(Field::VT_PADDING, padding, 0);
|
|
}
|
|
#[inline]
|
|
pub fn add_offset64(&mut self, offset64: bool) {
|
|
self.fbb_.push_slot::<bool>(Field::VT_OFFSET64, offset64, false);
|
|
}
|
|
#[inline]
|
|
pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a, A>) -> FieldBuilder<'a, 'b, A> {
|
|
let start = _fbb.start_table();
|
|
FieldBuilder { fbb_: _fbb, start_: start }
|
|
}
|
|
#[inline]
|
|
pub fn finish(self) -> flatbuffers::WIPOffset<Field<'a>> {
|
|
let o = self.fbb_.end_table(self.start_);
|
|
self.fbb_.required(o, Field::VT_NAME, "name");
|
|
self.fbb_.required(o, Field::VT_TYPE_, "type_");
|
|
flatbuffers::WIPOffset::new(o.value())
|
|
}
|
|
}
|
|
|
|
impl core::fmt::Debug for Field<'_> {
|
|
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
|
|
let mut ds = f.debug_struct("Field");
|
|
ds.field("name", &self.name());
|
|
ds.field("type_", &self.type_());
|
|
ds.field("id", &self.id());
|
|
ds.field("offset", &self.offset());
|
|
ds.field("default_integer", &self.default_integer());
|
|
ds.field("default_real", &self.default_real());
|
|
ds.field("deprecated", &self.deprecated());
|
|
ds.field("required", &self.required());
|
|
ds.field("key", &self.key());
|
|
ds.field("attributes", &self.attributes());
|
|
ds.field("documentation", &self.documentation());
|
|
ds.field("optional", &self.optional());
|
|
ds.field("padding", &self.padding());
|
|
ds.field("offset64", &self.offset64());
|
|
ds.finish()
|
|
}
|
|
}
|
|
pub enum ObjectOffset {}
|
|
#[derive(Copy, Clone, PartialEq)]
|
|
|
|
pub struct Object<'a> {
|
|
pub _tab: flatbuffers::Table<'a>,
|
|
}
|
|
|
|
impl<'a> flatbuffers::Follow<'a> for Object<'a> {
|
|
type Inner = Object<'a>;
|
|
#[inline]
|
|
unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
|
|
Self { _tab: flatbuffers::Table::new(buf, loc) }
|
|
}
|
|
}
|
|
|
|
impl<'a> Object<'a> {
|
|
pub const VT_NAME: flatbuffers::VOffsetT = 4;
|
|
pub const VT_FIELDS: flatbuffers::VOffsetT = 6;
|
|
pub const VT_IS_STRUCT: flatbuffers::VOffsetT = 8;
|
|
pub const VT_MINALIGN: flatbuffers::VOffsetT = 10;
|
|
pub const VT_BYTESIZE: flatbuffers::VOffsetT = 12;
|
|
pub const VT_ATTRIBUTES: flatbuffers::VOffsetT = 14;
|
|
pub const VT_DOCUMENTATION: flatbuffers::VOffsetT = 16;
|
|
pub const VT_DECLARATION_FILE: flatbuffers::VOffsetT = 18;
|
|
|
|
#[inline]
|
|
pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
|
|
Object { _tab: table }
|
|
}
|
|
#[allow(unused_mut)]
|
|
pub fn create<
|
|
'bldr: 'args,
|
|
'args: 'mut_bldr,
|
|
'mut_bldr,
|
|
A: flatbuffers::Allocator + 'bldr,
|
|
>(
|
|
_fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr, A>,
|
|
args: &'args ObjectArgs<'args>,
|
|
) -> flatbuffers::WIPOffset<Object<'bldr>> {
|
|
let mut builder = ObjectBuilder::new(_fbb);
|
|
if let Some(x) = args.declaration_file {
|
|
builder.add_declaration_file(x);
|
|
}
|
|
if let Some(x) = args.documentation {
|
|
builder.add_documentation(x);
|
|
}
|
|
if let Some(x) = args.attributes {
|
|
builder.add_attributes(x);
|
|
}
|
|
builder.add_bytesize(args.bytesize);
|
|
builder.add_minalign(args.minalign);
|
|
if let Some(x) = args.fields {
|
|
builder.add_fields(x);
|
|
}
|
|
if let Some(x) = args.name {
|
|
builder.add_name(x);
|
|
}
|
|
builder.add_is_struct(args.is_struct);
|
|
builder.finish()
|
|
}
|
|
|
|
#[inline]
|
|
pub fn name(&self) -> &'a str {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(Object::VT_NAME, None).unwrap()
|
|
}
|
|
}
|
|
#[inline]
|
|
pub fn key_compare_less_than(&self, o: &Object) -> bool {
|
|
self.name() < o.name()
|
|
}
|
|
|
|
#[inline]
|
|
pub fn key_compare_with_value(&self, val: &str) -> ::core::cmp::Ordering {
|
|
let key = self.name();
|
|
key.cmp(val)
|
|
}
|
|
#[inline]
|
|
pub fn fields(&self) -> flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Field<'a>>> {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe {
|
|
self._tab
|
|
.get::<flatbuffers::ForwardsUOffset<
|
|
flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Field>>,
|
|
>>(Object::VT_FIELDS, None)
|
|
.unwrap()
|
|
}
|
|
}
|
|
#[inline]
|
|
pub fn is_struct(&self) -> bool {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe { self._tab.get::<bool>(Object::VT_IS_STRUCT, Some(false)).unwrap() }
|
|
}
|
|
#[inline]
|
|
pub fn minalign(&self) -> i32 {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe { self._tab.get::<i32>(Object::VT_MINALIGN, Some(0)).unwrap() }
|
|
}
|
|
#[inline]
|
|
pub fn bytesize(&self) -> i32 {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe { self._tab.get::<i32>(Object::VT_BYTESIZE, Some(0)).unwrap() }
|
|
}
|
|
#[inline]
|
|
pub fn attributes(
|
|
&self,
|
|
) -> Option<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<KeyValue<'a>>>> {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<
|
|
flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<KeyValue>>,
|
|
>>(Object::VT_ATTRIBUTES, None)
|
|
}
|
|
}
|
|
#[inline]
|
|
pub fn documentation(
|
|
&self,
|
|
) -> Option<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<&'a str>>> {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<
|
|
flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<&'a str>>,
|
|
>>(Object::VT_DOCUMENTATION, None)
|
|
}
|
|
}
|
|
/// File that this Object is declared in.
|
|
#[inline]
|
|
pub fn declaration_file(&self) -> Option<&'a str> {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe {
|
|
self._tab
|
|
.get::<flatbuffers::ForwardsUOffset<&str>>(Object::VT_DECLARATION_FILE, None)
|
|
}
|
|
}
|
|
}
|
|
|
|
impl flatbuffers::Verifiable for Object<'_> {
|
|
#[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>>("name", Self::VT_NAME, true)?
|
|
.visit_field::<flatbuffers::ForwardsUOffset<
|
|
flatbuffers::Vector<'_, flatbuffers::ForwardsUOffset<Field>>,
|
|
>>("fields", Self::VT_FIELDS, true)?
|
|
.visit_field::<bool>("is_struct", Self::VT_IS_STRUCT, false)?
|
|
.visit_field::<i32>("minalign", Self::VT_MINALIGN, false)?
|
|
.visit_field::<i32>("bytesize", Self::VT_BYTESIZE, false)?
|
|
.visit_field::<flatbuffers::ForwardsUOffset<
|
|
flatbuffers::Vector<'_, flatbuffers::ForwardsUOffset<KeyValue>>,
|
|
>>("attributes", Self::VT_ATTRIBUTES, false)?
|
|
.visit_field::<flatbuffers::ForwardsUOffset<
|
|
flatbuffers::Vector<'_, flatbuffers::ForwardsUOffset<&'_ str>>,
|
|
>>("documentation", Self::VT_DOCUMENTATION, false)?
|
|
.visit_field::<flatbuffers::ForwardsUOffset<&str>>(
|
|
"declaration_file",
|
|
Self::VT_DECLARATION_FILE,
|
|
false,
|
|
)?
|
|
.finish();
|
|
Ok(())
|
|
}
|
|
}
|
|
pub struct ObjectArgs<'a> {
|
|
pub name: Option<flatbuffers::WIPOffset<&'a str>>,
|
|
pub fields: Option<
|
|
flatbuffers::WIPOffset<
|
|
flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Field<'a>>>,
|
|
>,
|
|
>,
|
|
pub is_struct: bool,
|
|
pub minalign: i32,
|
|
pub bytesize: i32,
|
|
pub attributes: Option<
|
|
flatbuffers::WIPOffset<
|
|
flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<KeyValue<'a>>>,
|
|
>,
|
|
>,
|
|
pub documentation: Option<
|
|
flatbuffers::WIPOffset<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<&'a str>>>,
|
|
>,
|
|
pub declaration_file: Option<flatbuffers::WIPOffset<&'a str>>,
|
|
}
|
|
impl<'a> Default for ObjectArgs<'a> {
|
|
#[inline]
|
|
fn default() -> Self {
|
|
ObjectArgs {
|
|
name: None, // required field
|
|
fields: None, // required field
|
|
is_struct: false,
|
|
minalign: 0,
|
|
bytesize: 0,
|
|
attributes: None,
|
|
documentation: None,
|
|
declaration_file: None,
|
|
}
|
|
}
|
|
}
|
|
|
|
pub struct ObjectBuilder<'a: 'b, 'b, A: flatbuffers::Allocator + 'a> {
|
|
fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a, A>,
|
|
start_: flatbuffers::WIPOffset<flatbuffers::TableUnfinishedWIPOffset>,
|
|
}
|
|
impl<'a: 'b, 'b, A: flatbuffers::Allocator + 'a> ObjectBuilder<'a, 'b, A> {
|
|
#[inline]
|
|
pub fn add_name(&mut self, name: flatbuffers::WIPOffset<&'b str>) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Object::VT_NAME, name);
|
|
}
|
|
#[inline]
|
|
pub fn add_fields(
|
|
&mut self,
|
|
fields: flatbuffers::WIPOffset<
|
|
flatbuffers::Vector<'b, flatbuffers::ForwardsUOffset<Field<'b>>>,
|
|
>,
|
|
) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Object::VT_FIELDS, fields);
|
|
}
|
|
#[inline]
|
|
pub fn add_is_struct(&mut self, is_struct: bool) {
|
|
self.fbb_.push_slot::<bool>(Object::VT_IS_STRUCT, is_struct, false);
|
|
}
|
|
#[inline]
|
|
pub fn add_minalign(&mut self, minalign: i32) {
|
|
self.fbb_.push_slot::<i32>(Object::VT_MINALIGN, minalign, 0);
|
|
}
|
|
#[inline]
|
|
pub fn add_bytesize(&mut self, bytesize: i32) {
|
|
self.fbb_.push_slot::<i32>(Object::VT_BYTESIZE, bytesize, 0);
|
|
}
|
|
#[inline]
|
|
pub fn add_attributes(
|
|
&mut self,
|
|
attributes: flatbuffers::WIPOffset<
|
|
flatbuffers::Vector<'b, flatbuffers::ForwardsUOffset<KeyValue<'b>>>,
|
|
>,
|
|
) {
|
|
self.fbb_
|
|
.push_slot_always::<flatbuffers::WIPOffset<_>>(Object::VT_ATTRIBUTES, attributes);
|
|
}
|
|
#[inline]
|
|
pub fn add_documentation(
|
|
&mut self,
|
|
documentation: flatbuffers::WIPOffset<
|
|
flatbuffers::Vector<'b, flatbuffers::ForwardsUOffset<&'b str>>,
|
|
>,
|
|
) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(
|
|
Object::VT_DOCUMENTATION,
|
|
documentation,
|
|
);
|
|
}
|
|
#[inline]
|
|
pub fn add_declaration_file(&mut self, declaration_file: flatbuffers::WIPOffset<&'b str>) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(
|
|
Object::VT_DECLARATION_FILE,
|
|
declaration_file,
|
|
);
|
|
}
|
|
#[inline]
|
|
pub fn new(
|
|
_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a, A>,
|
|
) -> ObjectBuilder<'a, 'b, A> {
|
|
let start = _fbb.start_table();
|
|
ObjectBuilder { fbb_: _fbb, start_: start }
|
|
}
|
|
#[inline]
|
|
pub fn finish(self) -> flatbuffers::WIPOffset<Object<'a>> {
|
|
let o = self.fbb_.end_table(self.start_);
|
|
self.fbb_.required(o, Object::VT_NAME, "name");
|
|
self.fbb_.required(o, Object::VT_FIELDS, "fields");
|
|
flatbuffers::WIPOffset::new(o.value())
|
|
}
|
|
}
|
|
|
|
impl core::fmt::Debug for Object<'_> {
|
|
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
|
|
let mut ds = f.debug_struct("Object");
|
|
ds.field("name", &self.name());
|
|
ds.field("fields", &self.fields());
|
|
ds.field("is_struct", &self.is_struct());
|
|
ds.field("minalign", &self.minalign());
|
|
ds.field("bytesize", &self.bytesize());
|
|
ds.field("attributes", &self.attributes());
|
|
ds.field("documentation", &self.documentation());
|
|
ds.field("declaration_file", &self.declaration_file());
|
|
ds.finish()
|
|
}
|
|
}
|
|
pub enum RPCCallOffset {}
|
|
#[derive(Copy, Clone, PartialEq)]
|
|
|
|
pub struct RPCCall<'a> {
|
|
pub _tab: flatbuffers::Table<'a>,
|
|
}
|
|
|
|
impl<'a> flatbuffers::Follow<'a> for RPCCall<'a> {
|
|
type Inner = RPCCall<'a>;
|
|
#[inline]
|
|
unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
|
|
Self { _tab: flatbuffers::Table::new(buf, loc) }
|
|
}
|
|
}
|
|
|
|
impl<'a> RPCCall<'a> {
|
|
pub const VT_NAME: flatbuffers::VOffsetT = 4;
|
|
pub const VT_REQUEST: flatbuffers::VOffsetT = 6;
|
|
pub const VT_RESPONSE: flatbuffers::VOffsetT = 8;
|
|
pub const VT_ATTRIBUTES: flatbuffers::VOffsetT = 10;
|
|
pub const VT_DOCUMENTATION: flatbuffers::VOffsetT = 12;
|
|
|
|
#[inline]
|
|
pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
|
|
RPCCall { _tab: table }
|
|
}
|
|
#[allow(unused_mut)]
|
|
pub fn create<
|
|
'bldr: 'args,
|
|
'args: 'mut_bldr,
|
|
'mut_bldr,
|
|
A: flatbuffers::Allocator + 'bldr,
|
|
>(
|
|
_fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr, A>,
|
|
args: &'args RPCCallArgs<'args>,
|
|
) -> flatbuffers::WIPOffset<RPCCall<'bldr>> {
|
|
let mut builder = RPCCallBuilder::new(_fbb);
|
|
if let Some(x) = args.documentation {
|
|
builder.add_documentation(x);
|
|
}
|
|
if let Some(x) = args.attributes {
|
|
builder.add_attributes(x);
|
|
}
|
|
if let Some(x) = args.response {
|
|
builder.add_response(x);
|
|
}
|
|
if let Some(x) = args.request {
|
|
builder.add_request(x);
|
|
}
|
|
if let Some(x) = args.name {
|
|
builder.add_name(x);
|
|
}
|
|
builder.finish()
|
|
}
|
|
|
|
#[inline]
|
|
pub fn name(&self) -> &'a str {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(RPCCall::VT_NAME, None).unwrap()
|
|
}
|
|
}
|
|
#[inline]
|
|
pub fn key_compare_less_than(&self, o: &RPCCall) -> bool {
|
|
self.name() < o.name()
|
|
}
|
|
|
|
#[inline]
|
|
pub fn key_compare_with_value(&self, val: &str) -> ::core::cmp::Ordering {
|
|
let key = self.name();
|
|
key.cmp(val)
|
|
}
|
|
#[inline]
|
|
pub fn request(&self) -> Object<'a> {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe {
|
|
self._tab
|
|
.get::<flatbuffers::ForwardsUOffset<Object>>(RPCCall::VT_REQUEST, None)
|
|
.unwrap()
|
|
}
|
|
}
|
|
#[inline]
|
|
pub fn response(&self) -> Object<'a> {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe {
|
|
self._tab
|
|
.get::<flatbuffers::ForwardsUOffset<Object>>(RPCCall::VT_RESPONSE, None)
|
|
.unwrap()
|
|
}
|
|
}
|
|
#[inline]
|
|
pub fn attributes(
|
|
&self,
|
|
) -> Option<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<KeyValue<'a>>>> {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<
|
|
flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<KeyValue>>,
|
|
>>(RPCCall::VT_ATTRIBUTES, None)
|
|
}
|
|
}
|
|
#[inline]
|
|
pub fn documentation(
|
|
&self,
|
|
) -> Option<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<&'a str>>> {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<
|
|
flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<&'a str>>,
|
|
>>(RPCCall::VT_DOCUMENTATION, None)
|
|
}
|
|
}
|
|
}
|
|
|
|
impl flatbuffers::Verifiable for RPCCall<'_> {
|
|
#[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>>("name", Self::VT_NAME, true)?
|
|
.visit_field::<flatbuffers::ForwardsUOffset<Object>>(
|
|
"request",
|
|
Self::VT_REQUEST,
|
|
true,
|
|
)?
|
|
.visit_field::<flatbuffers::ForwardsUOffset<Object>>(
|
|
"response",
|
|
Self::VT_RESPONSE,
|
|
true,
|
|
)?
|
|
.visit_field::<flatbuffers::ForwardsUOffset<
|
|
flatbuffers::Vector<'_, flatbuffers::ForwardsUOffset<KeyValue>>,
|
|
>>("attributes", Self::VT_ATTRIBUTES, false)?
|
|
.visit_field::<flatbuffers::ForwardsUOffset<
|
|
flatbuffers::Vector<'_, flatbuffers::ForwardsUOffset<&'_ str>>,
|
|
>>("documentation", Self::VT_DOCUMENTATION, false)?
|
|
.finish();
|
|
Ok(())
|
|
}
|
|
}
|
|
pub struct RPCCallArgs<'a> {
|
|
pub name: Option<flatbuffers::WIPOffset<&'a str>>,
|
|
pub request: Option<flatbuffers::WIPOffset<Object<'a>>>,
|
|
pub response: Option<flatbuffers::WIPOffset<Object<'a>>>,
|
|
pub attributes: Option<
|
|
flatbuffers::WIPOffset<
|
|
flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<KeyValue<'a>>>,
|
|
>,
|
|
>,
|
|
pub documentation: Option<
|
|
flatbuffers::WIPOffset<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<&'a str>>>,
|
|
>,
|
|
}
|
|
impl<'a> Default for RPCCallArgs<'a> {
|
|
#[inline]
|
|
fn default() -> Self {
|
|
RPCCallArgs {
|
|
name: None, // required field
|
|
request: None, // required field
|
|
response: None, // required field
|
|
attributes: None,
|
|
documentation: None,
|
|
}
|
|
}
|
|
}
|
|
|
|
pub struct RPCCallBuilder<'a: 'b, 'b, A: flatbuffers::Allocator + 'a> {
|
|
fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a, A>,
|
|
start_: flatbuffers::WIPOffset<flatbuffers::TableUnfinishedWIPOffset>,
|
|
}
|
|
impl<'a: 'b, 'b, A: flatbuffers::Allocator + 'a> RPCCallBuilder<'a, 'b, A> {
|
|
#[inline]
|
|
pub fn add_name(&mut self, name: flatbuffers::WIPOffset<&'b str>) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(RPCCall::VT_NAME, name);
|
|
}
|
|
#[inline]
|
|
pub fn add_request(&mut self, request: flatbuffers::WIPOffset<Object<'b>>) {
|
|
self.fbb_
|
|
.push_slot_always::<flatbuffers::WIPOffset<Object>>(RPCCall::VT_REQUEST, request);
|
|
}
|
|
#[inline]
|
|
pub fn add_response(&mut self, response: flatbuffers::WIPOffset<Object<'b>>) {
|
|
self.fbb_
|
|
.push_slot_always::<flatbuffers::WIPOffset<Object>>(RPCCall::VT_RESPONSE, response);
|
|
}
|
|
#[inline]
|
|
pub fn add_attributes(
|
|
&mut self,
|
|
attributes: flatbuffers::WIPOffset<
|
|
flatbuffers::Vector<'b, flatbuffers::ForwardsUOffset<KeyValue<'b>>>,
|
|
>,
|
|
) {
|
|
self.fbb_
|
|
.push_slot_always::<flatbuffers::WIPOffset<_>>(RPCCall::VT_ATTRIBUTES, attributes);
|
|
}
|
|
#[inline]
|
|
pub fn add_documentation(
|
|
&mut self,
|
|
documentation: flatbuffers::WIPOffset<
|
|
flatbuffers::Vector<'b, flatbuffers::ForwardsUOffset<&'b str>>,
|
|
>,
|
|
) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(
|
|
RPCCall::VT_DOCUMENTATION,
|
|
documentation,
|
|
);
|
|
}
|
|
#[inline]
|
|
pub fn new(
|
|
_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a, A>,
|
|
) -> RPCCallBuilder<'a, 'b, A> {
|
|
let start = _fbb.start_table();
|
|
RPCCallBuilder { fbb_: _fbb, start_: start }
|
|
}
|
|
#[inline]
|
|
pub fn finish(self) -> flatbuffers::WIPOffset<RPCCall<'a>> {
|
|
let o = self.fbb_.end_table(self.start_);
|
|
self.fbb_.required(o, RPCCall::VT_NAME, "name");
|
|
self.fbb_.required(o, RPCCall::VT_REQUEST, "request");
|
|
self.fbb_.required(o, RPCCall::VT_RESPONSE, "response");
|
|
flatbuffers::WIPOffset::new(o.value())
|
|
}
|
|
}
|
|
|
|
impl core::fmt::Debug for RPCCall<'_> {
|
|
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
|
|
let mut ds = f.debug_struct("RPCCall");
|
|
ds.field("name", &self.name());
|
|
ds.field("request", &self.request());
|
|
ds.field("response", &self.response());
|
|
ds.field("attributes", &self.attributes());
|
|
ds.field("documentation", &self.documentation());
|
|
ds.finish()
|
|
}
|
|
}
|
|
pub enum ServiceOffset {}
|
|
#[derive(Copy, Clone, PartialEq)]
|
|
|
|
pub struct Service<'a> {
|
|
pub _tab: flatbuffers::Table<'a>,
|
|
}
|
|
|
|
impl<'a> flatbuffers::Follow<'a> for Service<'a> {
|
|
type Inner = Service<'a>;
|
|
#[inline]
|
|
unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
|
|
Self { _tab: flatbuffers::Table::new(buf, loc) }
|
|
}
|
|
}
|
|
|
|
impl<'a> Service<'a> {
|
|
pub const VT_NAME: flatbuffers::VOffsetT = 4;
|
|
pub const VT_CALLS: flatbuffers::VOffsetT = 6;
|
|
pub const VT_ATTRIBUTES: flatbuffers::VOffsetT = 8;
|
|
pub const VT_DOCUMENTATION: flatbuffers::VOffsetT = 10;
|
|
pub const VT_DECLARATION_FILE: flatbuffers::VOffsetT = 12;
|
|
|
|
#[inline]
|
|
pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
|
|
Service { _tab: table }
|
|
}
|
|
#[allow(unused_mut)]
|
|
pub fn create<
|
|
'bldr: 'args,
|
|
'args: 'mut_bldr,
|
|
'mut_bldr,
|
|
A: flatbuffers::Allocator + 'bldr,
|
|
>(
|
|
_fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr, A>,
|
|
args: &'args ServiceArgs<'args>,
|
|
) -> flatbuffers::WIPOffset<Service<'bldr>> {
|
|
let mut builder = ServiceBuilder::new(_fbb);
|
|
if let Some(x) = args.declaration_file {
|
|
builder.add_declaration_file(x);
|
|
}
|
|
if let Some(x) = args.documentation {
|
|
builder.add_documentation(x);
|
|
}
|
|
if let Some(x) = args.attributes {
|
|
builder.add_attributes(x);
|
|
}
|
|
if let Some(x) = args.calls {
|
|
builder.add_calls(x);
|
|
}
|
|
if let Some(x) = args.name {
|
|
builder.add_name(x);
|
|
}
|
|
builder.finish()
|
|
}
|
|
|
|
#[inline]
|
|
pub fn name(&self) -> &'a str {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(Service::VT_NAME, None).unwrap()
|
|
}
|
|
}
|
|
#[inline]
|
|
pub fn key_compare_less_than(&self, o: &Service) -> bool {
|
|
self.name() < o.name()
|
|
}
|
|
|
|
#[inline]
|
|
pub fn key_compare_with_value(&self, val: &str) -> ::core::cmp::Ordering {
|
|
let key = self.name();
|
|
key.cmp(val)
|
|
}
|
|
#[inline]
|
|
pub fn calls(
|
|
&self,
|
|
) -> Option<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<RPCCall<'a>>>> {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<
|
|
flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<RPCCall>>,
|
|
>>(Service::VT_CALLS, None)
|
|
}
|
|
}
|
|
#[inline]
|
|
pub fn attributes(
|
|
&self,
|
|
) -> Option<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<KeyValue<'a>>>> {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<
|
|
flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<KeyValue>>,
|
|
>>(Service::VT_ATTRIBUTES, None)
|
|
}
|
|
}
|
|
#[inline]
|
|
pub fn documentation(
|
|
&self,
|
|
) -> Option<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<&'a str>>> {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<
|
|
flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<&'a str>>,
|
|
>>(Service::VT_DOCUMENTATION, None)
|
|
}
|
|
}
|
|
/// File that this Service is declared in.
|
|
#[inline]
|
|
pub fn declaration_file(&self) -> Option<&'a str> {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe {
|
|
self._tab
|
|
.get::<flatbuffers::ForwardsUOffset<&str>>(Service::VT_DECLARATION_FILE, None)
|
|
}
|
|
}
|
|
}
|
|
|
|
impl flatbuffers::Verifiable for Service<'_> {
|
|
#[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>>("name", Self::VT_NAME, true)?
|
|
.visit_field::<flatbuffers::ForwardsUOffset<
|
|
flatbuffers::Vector<'_, flatbuffers::ForwardsUOffset<RPCCall>>,
|
|
>>("calls", Self::VT_CALLS, false)?
|
|
.visit_field::<flatbuffers::ForwardsUOffset<
|
|
flatbuffers::Vector<'_, flatbuffers::ForwardsUOffset<KeyValue>>,
|
|
>>("attributes", Self::VT_ATTRIBUTES, false)?
|
|
.visit_field::<flatbuffers::ForwardsUOffset<
|
|
flatbuffers::Vector<'_, flatbuffers::ForwardsUOffset<&'_ str>>,
|
|
>>("documentation", Self::VT_DOCUMENTATION, false)?
|
|
.visit_field::<flatbuffers::ForwardsUOffset<&str>>(
|
|
"declaration_file",
|
|
Self::VT_DECLARATION_FILE,
|
|
false,
|
|
)?
|
|
.finish();
|
|
Ok(())
|
|
}
|
|
}
|
|
pub struct ServiceArgs<'a> {
|
|
pub name: Option<flatbuffers::WIPOffset<&'a str>>,
|
|
pub calls: Option<
|
|
flatbuffers::WIPOffset<
|
|
flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<RPCCall<'a>>>,
|
|
>,
|
|
>,
|
|
pub attributes: Option<
|
|
flatbuffers::WIPOffset<
|
|
flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<KeyValue<'a>>>,
|
|
>,
|
|
>,
|
|
pub documentation: Option<
|
|
flatbuffers::WIPOffset<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<&'a str>>>,
|
|
>,
|
|
pub declaration_file: Option<flatbuffers::WIPOffset<&'a str>>,
|
|
}
|
|
impl<'a> Default for ServiceArgs<'a> {
|
|
#[inline]
|
|
fn default() -> Self {
|
|
ServiceArgs {
|
|
name: None, // required field
|
|
calls: None,
|
|
attributes: None,
|
|
documentation: None,
|
|
declaration_file: None,
|
|
}
|
|
}
|
|
}
|
|
|
|
pub struct ServiceBuilder<'a: 'b, 'b, A: flatbuffers::Allocator + 'a> {
|
|
fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a, A>,
|
|
start_: flatbuffers::WIPOffset<flatbuffers::TableUnfinishedWIPOffset>,
|
|
}
|
|
impl<'a: 'b, 'b, A: flatbuffers::Allocator + 'a> ServiceBuilder<'a, 'b, A> {
|
|
#[inline]
|
|
pub fn add_name(&mut self, name: flatbuffers::WIPOffset<&'b str>) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Service::VT_NAME, name);
|
|
}
|
|
#[inline]
|
|
pub fn add_calls(
|
|
&mut self,
|
|
calls: flatbuffers::WIPOffset<
|
|
flatbuffers::Vector<'b, flatbuffers::ForwardsUOffset<RPCCall<'b>>>,
|
|
>,
|
|
) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Service::VT_CALLS, calls);
|
|
}
|
|
#[inline]
|
|
pub fn add_attributes(
|
|
&mut self,
|
|
attributes: flatbuffers::WIPOffset<
|
|
flatbuffers::Vector<'b, flatbuffers::ForwardsUOffset<KeyValue<'b>>>,
|
|
>,
|
|
) {
|
|
self.fbb_
|
|
.push_slot_always::<flatbuffers::WIPOffset<_>>(Service::VT_ATTRIBUTES, attributes);
|
|
}
|
|
#[inline]
|
|
pub fn add_documentation(
|
|
&mut self,
|
|
documentation: flatbuffers::WIPOffset<
|
|
flatbuffers::Vector<'b, flatbuffers::ForwardsUOffset<&'b str>>,
|
|
>,
|
|
) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(
|
|
Service::VT_DOCUMENTATION,
|
|
documentation,
|
|
);
|
|
}
|
|
#[inline]
|
|
pub fn add_declaration_file(&mut self, declaration_file: flatbuffers::WIPOffset<&'b str>) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(
|
|
Service::VT_DECLARATION_FILE,
|
|
declaration_file,
|
|
);
|
|
}
|
|
#[inline]
|
|
pub fn new(
|
|
_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a, A>,
|
|
) -> ServiceBuilder<'a, 'b, A> {
|
|
let start = _fbb.start_table();
|
|
ServiceBuilder { fbb_: _fbb, start_: start }
|
|
}
|
|
#[inline]
|
|
pub fn finish(self) -> flatbuffers::WIPOffset<Service<'a>> {
|
|
let o = self.fbb_.end_table(self.start_);
|
|
self.fbb_.required(o, Service::VT_NAME, "name");
|
|
flatbuffers::WIPOffset::new(o.value())
|
|
}
|
|
}
|
|
|
|
impl core::fmt::Debug for Service<'_> {
|
|
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
|
|
let mut ds = f.debug_struct("Service");
|
|
ds.field("name", &self.name());
|
|
ds.field("calls", &self.calls());
|
|
ds.field("attributes", &self.attributes());
|
|
ds.field("documentation", &self.documentation());
|
|
ds.field("declaration_file", &self.declaration_file());
|
|
ds.finish()
|
|
}
|
|
}
|
|
pub enum SchemaFileOffset {}
|
|
#[derive(Copy, Clone, PartialEq)]
|
|
|
|
/// File specific information.
|
|
/// Symbols declared within a file may be recovered by iterating over all
|
|
/// symbols and examining the `declaration_file` field.
|
|
pub struct SchemaFile<'a> {
|
|
pub _tab: flatbuffers::Table<'a>,
|
|
}
|
|
|
|
impl<'a> flatbuffers::Follow<'a> for SchemaFile<'a> {
|
|
type Inner = SchemaFile<'a>;
|
|
#[inline]
|
|
unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
|
|
Self { _tab: flatbuffers::Table::new(buf, loc) }
|
|
}
|
|
}
|
|
|
|
impl<'a> SchemaFile<'a> {
|
|
pub const VT_FILENAME: flatbuffers::VOffsetT = 4;
|
|
pub const VT_INCLUDED_FILENAMES: flatbuffers::VOffsetT = 6;
|
|
|
|
#[inline]
|
|
pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
|
|
SchemaFile { _tab: table }
|
|
}
|
|
#[allow(unused_mut)]
|
|
pub fn create<
|
|
'bldr: 'args,
|
|
'args: 'mut_bldr,
|
|
'mut_bldr,
|
|
A: flatbuffers::Allocator + 'bldr,
|
|
>(
|
|
_fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr, A>,
|
|
args: &'args SchemaFileArgs<'args>,
|
|
) -> flatbuffers::WIPOffset<SchemaFile<'bldr>> {
|
|
let mut builder = SchemaFileBuilder::new(_fbb);
|
|
if let Some(x) = args.included_filenames {
|
|
builder.add_included_filenames(x);
|
|
}
|
|
if let Some(x) = args.filename {
|
|
builder.add_filename(x);
|
|
}
|
|
builder.finish()
|
|
}
|
|
|
|
/// Filename, relative to project root.
|
|
#[inline]
|
|
pub fn filename(&self) -> &'a str {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe {
|
|
self._tab
|
|
.get::<flatbuffers::ForwardsUOffset<&str>>(SchemaFile::VT_FILENAME, None)
|
|
.unwrap()
|
|
}
|
|
}
|
|
#[inline]
|
|
pub fn key_compare_less_than(&self, o: &SchemaFile) -> bool {
|
|
self.filename() < o.filename()
|
|
}
|
|
|
|
#[inline]
|
|
pub fn key_compare_with_value(&self, val: &str) -> ::core::cmp::Ordering {
|
|
let key = self.filename();
|
|
key.cmp(val)
|
|
}
|
|
/// Names of included files, relative to project root.
|
|
#[inline]
|
|
pub fn included_filenames(
|
|
&self,
|
|
) -> Option<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<&'a str>>> {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<
|
|
flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<&'a str>>,
|
|
>>(SchemaFile::VT_INCLUDED_FILENAMES, None)
|
|
}
|
|
}
|
|
}
|
|
|
|
impl flatbuffers::Verifiable for SchemaFile<'_> {
|
|
#[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>>(
|
|
"filename",
|
|
Self::VT_FILENAME,
|
|
true,
|
|
)?
|
|
.visit_field::<flatbuffers::ForwardsUOffset<
|
|
flatbuffers::Vector<'_, flatbuffers::ForwardsUOffset<&'_ str>>,
|
|
>>("included_filenames", Self::VT_INCLUDED_FILENAMES, false)?
|
|
.finish();
|
|
Ok(())
|
|
}
|
|
}
|
|
pub struct SchemaFileArgs<'a> {
|
|
pub filename: Option<flatbuffers::WIPOffset<&'a str>>,
|
|
pub included_filenames: Option<
|
|
flatbuffers::WIPOffset<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<&'a str>>>,
|
|
>,
|
|
}
|
|
impl<'a> Default for SchemaFileArgs<'a> {
|
|
#[inline]
|
|
fn default() -> Self {
|
|
SchemaFileArgs {
|
|
filename: None, // required field
|
|
included_filenames: None,
|
|
}
|
|
}
|
|
}
|
|
|
|
pub struct SchemaFileBuilder<'a: 'b, 'b, A: flatbuffers::Allocator + 'a> {
|
|
fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a, A>,
|
|
start_: flatbuffers::WIPOffset<flatbuffers::TableUnfinishedWIPOffset>,
|
|
}
|
|
impl<'a: 'b, 'b, A: flatbuffers::Allocator + 'a> SchemaFileBuilder<'a, 'b, A> {
|
|
#[inline]
|
|
pub fn add_filename(&mut self, filename: flatbuffers::WIPOffset<&'b str>) {
|
|
self.fbb_
|
|
.push_slot_always::<flatbuffers::WIPOffset<_>>(SchemaFile::VT_FILENAME, filename);
|
|
}
|
|
#[inline]
|
|
pub fn add_included_filenames(
|
|
&mut self,
|
|
included_filenames: flatbuffers::WIPOffset<
|
|
flatbuffers::Vector<'b, flatbuffers::ForwardsUOffset<&'b str>>,
|
|
>,
|
|
) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(
|
|
SchemaFile::VT_INCLUDED_FILENAMES,
|
|
included_filenames,
|
|
);
|
|
}
|
|
#[inline]
|
|
pub fn new(
|
|
_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a, A>,
|
|
) -> SchemaFileBuilder<'a, 'b, A> {
|
|
let start = _fbb.start_table();
|
|
SchemaFileBuilder { fbb_: _fbb, start_: start }
|
|
}
|
|
#[inline]
|
|
pub fn finish(self) -> flatbuffers::WIPOffset<SchemaFile<'a>> {
|
|
let o = self.fbb_.end_table(self.start_);
|
|
self.fbb_.required(o, SchemaFile::VT_FILENAME, "filename");
|
|
flatbuffers::WIPOffset::new(o.value())
|
|
}
|
|
}
|
|
|
|
impl core::fmt::Debug for SchemaFile<'_> {
|
|
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
|
|
let mut ds = f.debug_struct("SchemaFile");
|
|
ds.field("filename", &self.filename());
|
|
ds.field("included_filenames", &self.included_filenames());
|
|
ds.finish()
|
|
}
|
|
}
|
|
pub enum SchemaOffset {}
|
|
#[derive(Copy, Clone, PartialEq)]
|
|
|
|
pub struct Schema<'a> {
|
|
pub _tab: flatbuffers::Table<'a>,
|
|
}
|
|
|
|
impl<'a> flatbuffers::Follow<'a> for Schema<'a> {
|
|
type Inner = Schema<'a>;
|
|
#[inline]
|
|
unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
|
|
Self { _tab: flatbuffers::Table::new(buf, loc) }
|
|
}
|
|
}
|
|
|
|
impl<'a> Schema<'a> {
|
|
pub const VT_OBJECTS: flatbuffers::VOffsetT = 4;
|
|
pub const VT_ENUMS: flatbuffers::VOffsetT = 6;
|
|
pub const VT_FILE_IDENT: flatbuffers::VOffsetT = 8;
|
|
pub const VT_FILE_EXT: flatbuffers::VOffsetT = 10;
|
|
pub const VT_ROOT_TABLE: flatbuffers::VOffsetT = 12;
|
|
pub const VT_SERVICES: flatbuffers::VOffsetT = 14;
|
|
pub const VT_ADVANCED_FEATURES: flatbuffers::VOffsetT = 16;
|
|
pub const VT_FBS_FILES: flatbuffers::VOffsetT = 18;
|
|
|
|
#[inline]
|
|
pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
|
|
Schema { _tab: table }
|
|
}
|
|
#[allow(unused_mut)]
|
|
pub fn create<
|
|
'bldr: 'args,
|
|
'args: 'mut_bldr,
|
|
'mut_bldr,
|
|
A: flatbuffers::Allocator + 'bldr,
|
|
>(
|
|
_fbb: &'mut_bldr mut flatbuffers::FlatBufferBuilder<'bldr, A>,
|
|
args: &'args SchemaArgs<'args>,
|
|
) -> flatbuffers::WIPOffset<Schema<'bldr>> {
|
|
let mut builder = SchemaBuilder::new(_fbb);
|
|
builder.add_advanced_features(args.advanced_features);
|
|
if let Some(x) = args.fbs_files {
|
|
builder.add_fbs_files(x);
|
|
}
|
|
if let Some(x) = args.services {
|
|
builder.add_services(x);
|
|
}
|
|
if let Some(x) = args.root_table {
|
|
builder.add_root_table(x);
|
|
}
|
|
if let Some(x) = args.file_ext {
|
|
builder.add_file_ext(x);
|
|
}
|
|
if let Some(x) = args.file_ident {
|
|
builder.add_file_ident(x);
|
|
}
|
|
if let Some(x) = args.enums {
|
|
builder.add_enums(x);
|
|
}
|
|
if let Some(x) = args.objects {
|
|
builder.add_objects(x);
|
|
}
|
|
builder.finish()
|
|
}
|
|
|
|
#[inline]
|
|
pub fn objects(&self) -> flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Object<'a>>> {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe {
|
|
self._tab
|
|
.get::<flatbuffers::ForwardsUOffset<
|
|
flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Object>>,
|
|
>>(Schema::VT_OBJECTS, None)
|
|
.unwrap()
|
|
}
|
|
}
|
|
#[inline]
|
|
pub fn enums(&self) -> flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Enum<'a>>> {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe {
|
|
self._tab
|
|
.get::<flatbuffers::ForwardsUOffset<
|
|
flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Enum>>,
|
|
>>(Schema::VT_ENUMS, None)
|
|
.unwrap()
|
|
}
|
|
}
|
|
#[inline]
|
|
pub fn file_ident(&self) -> Option<&'a str> {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(Schema::VT_FILE_IDENT, None)
|
|
}
|
|
}
|
|
#[inline]
|
|
pub fn file_ext(&self) -> Option<&'a str> {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(Schema::VT_FILE_EXT, None)
|
|
}
|
|
}
|
|
#[inline]
|
|
pub fn root_table(&self) -> Option<Object<'a>> {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<Object>>(Schema::VT_ROOT_TABLE, None)
|
|
}
|
|
}
|
|
#[inline]
|
|
pub fn services(
|
|
&self,
|
|
) -> Option<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Service<'a>>>> {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<
|
|
flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Service>>,
|
|
>>(Schema::VT_SERVICES, None)
|
|
}
|
|
}
|
|
#[inline]
|
|
pub fn advanced_features(&self) -> AdvancedFeatures {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe {
|
|
self._tab
|
|
.get::<AdvancedFeatures>(Schema::VT_ADVANCED_FEATURES, Some(Default::default()))
|
|
.unwrap()
|
|
}
|
|
}
|
|
/// All the files used in this compilation. Files are relative to where
|
|
/// flatc was invoked.
|
|
#[inline]
|
|
pub fn fbs_files(
|
|
&self,
|
|
) -> Option<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<SchemaFile<'a>>>> {
|
|
// Safety:
|
|
// Created from valid Table for this object
|
|
// which contains a valid value in this slot
|
|
unsafe {
|
|
self._tab.get::<flatbuffers::ForwardsUOffset<
|
|
flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<SchemaFile>>,
|
|
>>(Schema::VT_FBS_FILES, None)
|
|
}
|
|
}
|
|
}
|
|
|
|
impl flatbuffers::Verifiable for Schema<'_> {
|
|
#[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<
|
|
flatbuffers::Vector<'_, flatbuffers::ForwardsUOffset<Object>>,
|
|
>>("objects", Self::VT_OBJECTS, true)?
|
|
.visit_field::<flatbuffers::ForwardsUOffset<
|
|
flatbuffers::Vector<'_, flatbuffers::ForwardsUOffset<Enum>>,
|
|
>>("enums", Self::VT_ENUMS, true)?
|
|
.visit_field::<flatbuffers::ForwardsUOffset<&str>>(
|
|
"file_ident",
|
|
Self::VT_FILE_IDENT,
|
|
false,
|
|
)?
|
|
.visit_field::<flatbuffers::ForwardsUOffset<&str>>(
|
|
"file_ext",
|
|
Self::VT_FILE_EXT,
|
|
false,
|
|
)?
|
|
.visit_field::<flatbuffers::ForwardsUOffset<Object>>(
|
|
"root_table",
|
|
Self::VT_ROOT_TABLE,
|
|
false,
|
|
)?
|
|
.visit_field::<flatbuffers::ForwardsUOffset<
|
|
flatbuffers::Vector<'_, flatbuffers::ForwardsUOffset<Service>>,
|
|
>>("services", Self::VT_SERVICES, false)?
|
|
.visit_field::<AdvancedFeatures>(
|
|
"advanced_features",
|
|
Self::VT_ADVANCED_FEATURES,
|
|
false,
|
|
)?
|
|
.visit_field::<flatbuffers::ForwardsUOffset<
|
|
flatbuffers::Vector<'_, flatbuffers::ForwardsUOffset<SchemaFile>>,
|
|
>>("fbs_files", Self::VT_FBS_FILES, false)?
|
|
.finish();
|
|
Ok(())
|
|
}
|
|
}
|
|
pub struct SchemaArgs<'a> {
|
|
pub objects: Option<
|
|
flatbuffers::WIPOffset<
|
|
flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Object<'a>>>,
|
|
>,
|
|
>,
|
|
pub enums: Option<
|
|
flatbuffers::WIPOffset<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Enum<'a>>>>,
|
|
>,
|
|
pub file_ident: Option<flatbuffers::WIPOffset<&'a str>>,
|
|
pub file_ext: Option<flatbuffers::WIPOffset<&'a str>>,
|
|
pub root_table: Option<flatbuffers::WIPOffset<Object<'a>>>,
|
|
pub services: Option<
|
|
flatbuffers::WIPOffset<
|
|
flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<Service<'a>>>,
|
|
>,
|
|
>,
|
|
pub advanced_features: AdvancedFeatures,
|
|
pub fbs_files: Option<
|
|
flatbuffers::WIPOffset<
|
|
flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<SchemaFile<'a>>>,
|
|
>,
|
|
>,
|
|
}
|
|
impl<'a> Default for SchemaArgs<'a> {
|
|
#[inline]
|
|
fn default() -> Self {
|
|
SchemaArgs {
|
|
objects: None, // required field
|
|
enums: None, // required field
|
|
file_ident: None,
|
|
file_ext: None,
|
|
root_table: None,
|
|
services: None,
|
|
advanced_features: Default::default(),
|
|
fbs_files: None,
|
|
}
|
|
}
|
|
}
|
|
|
|
pub struct SchemaBuilder<'a: 'b, 'b, A: flatbuffers::Allocator + 'a> {
|
|
fbb_: &'b mut flatbuffers::FlatBufferBuilder<'a, A>,
|
|
start_: flatbuffers::WIPOffset<flatbuffers::TableUnfinishedWIPOffset>,
|
|
}
|
|
impl<'a: 'b, 'b, A: flatbuffers::Allocator + 'a> SchemaBuilder<'a, 'b, A> {
|
|
#[inline]
|
|
pub fn add_objects(
|
|
&mut self,
|
|
objects: flatbuffers::WIPOffset<
|
|
flatbuffers::Vector<'b, flatbuffers::ForwardsUOffset<Object<'b>>>,
|
|
>,
|
|
) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Schema::VT_OBJECTS, objects);
|
|
}
|
|
#[inline]
|
|
pub fn add_enums(
|
|
&mut self,
|
|
enums: flatbuffers::WIPOffset<
|
|
flatbuffers::Vector<'b, flatbuffers::ForwardsUOffset<Enum<'b>>>,
|
|
>,
|
|
) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Schema::VT_ENUMS, enums);
|
|
}
|
|
#[inline]
|
|
pub fn add_file_ident(&mut self, file_ident: flatbuffers::WIPOffset<&'b str>) {
|
|
self.fbb_
|
|
.push_slot_always::<flatbuffers::WIPOffset<_>>(Schema::VT_FILE_IDENT, file_ident);
|
|
}
|
|
#[inline]
|
|
pub fn add_file_ext(&mut self, file_ext: flatbuffers::WIPOffset<&'b str>) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Schema::VT_FILE_EXT, file_ext);
|
|
}
|
|
#[inline]
|
|
pub fn add_root_table(&mut self, root_table: flatbuffers::WIPOffset<Object<'b>>) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<Object>>(
|
|
Schema::VT_ROOT_TABLE,
|
|
root_table,
|
|
);
|
|
}
|
|
#[inline]
|
|
pub fn add_services(
|
|
&mut self,
|
|
services: flatbuffers::WIPOffset<
|
|
flatbuffers::Vector<'b, flatbuffers::ForwardsUOffset<Service<'b>>>,
|
|
>,
|
|
) {
|
|
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(Schema::VT_SERVICES, services);
|
|
}
|
|
#[inline]
|
|
pub fn add_advanced_features(&mut self, advanced_features: AdvancedFeatures) {
|
|
self.fbb_.push_slot::<AdvancedFeatures>(
|
|
Schema::VT_ADVANCED_FEATURES,
|
|
advanced_features,
|
|
Default::default(),
|
|
);
|
|
}
|
|
#[inline]
|
|
pub fn add_fbs_files(
|
|
&mut self,
|
|
fbs_files: flatbuffers::WIPOffset<
|
|
flatbuffers::Vector<'b, flatbuffers::ForwardsUOffset<SchemaFile<'b>>>,
|
|
>,
|
|
) {
|
|
self.fbb_
|
|
.push_slot_always::<flatbuffers::WIPOffset<_>>(Schema::VT_FBS_FILES, fbs_files);
|
|
}
|
|
#[inline]
|
|
pub fn new(
|
|
_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a, A>,
|
|
) -> SchemaBuilder<'a, 'b, A> {
|
|
let start = _fbb.start_table();
|
|
SchemaBuilder { fbb_: _fbb, start_: start }
|
|
}
|
|
#[inline]
|
|
pub fn finish(self) -> flatbuffers::WIPOffset<Schema<'a>> {
|
|
let o = self.fbb_.end_table(self.start_);
|
|
self.fbb_.required(o, Schema::VT_OBJECTS, "objects");
|
|
self.fbb_.required(o, Schema::VT_ENUMS, "enums");
|
|
flatbuffers::WIPOffset::new(o.value())
|
|
}
|
|
}
|
|
|
|
impl core::fmt::Debug for Schema<'_> {
|
|
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
|
|
let mut ds = f.debug_struct("Schema");
|
|
ds.field("objects", &self.objects());
|
|
ds.field("enums", &self.enums());
|
|
ds.field("file_ident", &self.file_ident());
|
|
ds.field("file_ext", &self.file_ext());
|
|
ds.field("root_table", &self.root_table());
|
|
ds.field("services", &self.services());
|
|
ds.field("advanced_features", &self.advanced_features());
|
|
ds.field("fbs_files", &self.fbs_files());
|
|
ds.finish()
|
|
}
|
|
}
|
|
#[inline]
|
|
/// Verifies that a buffer of bytes contains a `Schema`
|
|
/// 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_schema_unchecked`.
|
|
pub fn root_as_schema(buf: &[u8]) -> Result<Schema, flatbuffers::InvalidFlatbuffer> {
|
|
flatbuffers::root::<Schema>(buf)
|
|
}
|
|
#[inline]
|
|
/// Verifies that a buffer of bytes contains a size prefixed
|
|
/// `Schema` 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_schema_unchecked`.
|
|
pub fn size_prefixed_root_as_schema(
|
|
buf: &[u8],
|
|
) -> Result<Schema, flatbuffers::InvalidFlatbuffer> {
|
|
flatbuffers::size_prefixed_root::<Schema>(buf)
|
|
}
|
|
#[inline]
|
|
/// Verifies, with the given options, that a buffer of bytes
|
|
/// contains a `Schema` 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_schema_unchecked`.
|
|
pub fn root_as_schema_with_opts<'b, 'o>(
|
|
opts: &'o flatbuffers::VerifierOptions,
|
|
buf: &'b [u8],
|
|
) -> Result<Schema<'b>, flatbuffers::InvalidFlatbuffer> {
|
|
flatbuffers::root_with_opts::<Schema<'b>>(opts, buf)
|
|
}
|
|
#[inline]
|
|
/// Verifies, with the given verifier options, that a buffer of
|
|
/// bytes contains a size prefixed `Schema` 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_schema_unchecked`.
|
|
pub fn size_prefixed_root_as_schema_with_opts<'b, 'o>(
|
|
opts: &'o flatbuffers::VerifierOptions,
|
|
buf: &'b [u8],
|
|
) -> Result<Schema<'b>, flatbuffers::InvalidFlatbuffer> {
|
|
flatbuffers::size_prefixed_root_with_opts::<Schema<'b>>(opts, buf)
|
|
}
|
|
#[inline]
|
|
/// Assumes, without verification, that a buffer of bytes contains a Schema and returns it.
|
|
/// # Safety
|
|
/// Callers must trust the given bytes do indeed contain a valid `Schema`.
|
|
pub unsafe fn root_as_schema_unchecked(buf: &[u8]) -> Schema {
|
|
flatbuffers::root_unchecked::<Schema>(buf)
|
|
}
|
|
#[inline]
|
|
/// Assumes, without verification, that a buffer of bytes contains a size prefixed Schema and returns it.
|
|
/// # Safety
|
|
/// Callers must trust the given bytes do indeed contain a valid size prefixed `Schema`.
|
|
pub unsafe fn size_prefixed_root_as_schema_unchecked(buf: &[u8]) -> Schema {
|
|
flatbuffers::size_prefixed_root_unchecked::<Schema>(buf)
|
|
}
|
|
pub const SCHEMA_IDENTIFIER: &str = "BFBS";
|
|
|
|
#[inline]
|
|
pub fn schema_buffer_has_identifier(buf: &[u8]) -> bool {
|
|
flatbuffers::buffer_has_identifier(buf, SCHEMA_IDENTIFIER, false)
|
|
}
|
|
|
|
#[inline]
|
|
pub fn schema_size_prefixed_buffer_has_identifier(buf: &[u8]) -> bool {
|
|
flatbuffers::buffer_has_identifier(buf, SCHEMA_IDENTIFIER, true)
|
|
}
|
|
|
|
pub const SCHEMA_EXTENSION: &str = "bfbs";
|
|
|
|
#[inline]
|
|
pub fn finish_schema_buffer<'a, 'b, A: flatbuffers::Allocator + 'a>(
|
|
fbb: &'b mut flatbuffers::FlatBufferBuilder<'a, A>,
|
|
root: flatbuffers::WIPOffset<Schema<'a>>,
|
|
) {
|
|
fbb.finish(root, Some(SCHEMA_IDENTIFIER));
|
|
}
|
|
|
|
#[inline]
|
|
pub fn finish_size_prefixed_schema_buffer<'a, 'b, A: flatbuffers::Allocator + 'a>(
|
|
fbb: &'b mut flatbuffers::FlatBufferBuilder<'a, A>,
|
|
root: flatbuffers::WIPOffset<Schema<'a>>,
|
|
) {
|
|
fbb.finish_size_prefixed(root, Some(SCHEMA_IDENTIFIER));
|
|
}
|
|
} // pub mod reflection
|