use core::mem;
use core::cmp::Ordering;
extern crate flatbuffers;
use self::flatbuffers::{EndianScalar, Follow};
pub enum BMCOffset {}
#[derive(Copy, Clone, PartialEq)]
pub struct BMC<'a> {
pub _tab: flatbuffers::Table<'a>,
}
impl<'a> flatbuffers::Follow<'a> for BMC<'a> {
type Inner = BMC<'a>;
#[inline]
unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
Self { _tab: flatbuffers::Table::new(buf, loc) }
}
}
impl<'a> BMC<'a> {
pub const VT_ID: flatbuffers::VOffsetT = 4;
pub const VT_TYPE: flatbuffers::VOffsetT = 6;
pub const VT_CONTOUR_IDX: flatbuffers::VOffsetT = 8;
pub const VT_GAIN: flatbuffers::VOffsetT = 10;
pub const VT_REGION_NAME: flatbuffers::VOffsetT = 12;
pub const VT_GEOGRAPHY: flatbuffers::VOffsetT = 14;
pub const VT_GEOGRAPHY_TEXT: flatbuffers::VOffsetT = 16;
pub const VT_GEOGRAPHY_JSON: flatbuffers::VOffsetT = 18;
pub const VT_GEOGRAPHY_TYPE: flatbuffers::VOffsetT = 20;
pub const VT_GEOGRAPHY_NDIMS: flatbuffers::VOffsetT = 22;
pub const VT_GEOGRAPHY_SRID: flatbuffers::VOffsetT = 24;
#[inline]
pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
BMC { _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 BMCArgs<'args>
) -> flatbuffers::WIPOffset<BMC<'bldr>> {
let mut builder = BMCBuilder::new(_fbb);
builder.add_GAIN(args.GAIN);
builder.add_GEOGRAPHY_SRID(args.GEOGRAPHY_SRID);
builder.add_GEOGRAPHY_NDIMS(args.GEOGRAPHY_NDIMS);
if let Some(x) = args.GEOGRAPHY_TYPE { builder.add_GEOGRAPHY_TYPE(x); }
if let Some(x) = args.GEOGRAPHY_JSON { builder.add_GEOGRAPHY_JSON(x); }
if let Some(x) = args.GEOGRAPHY_TEXT { builder.add_GEOGRAPHY_TEXT(x); }
if let Some(x) = args.GEOGRAPHY { builder.add_GEOGRAPHY(x); }
if let Some(x) = args.REGION_NAME { builder.add_REGION_NAME(x); }
builder.add_CONTOUR_IDX(args.CONTOUR_IDX);
if let Some(x) = args.TYPE { builder.add_TYPE(x); }
if let Some(x) = args.ID { builder.add_ID(x); }
builder.finish()
}
pub fn unpack(&self) -> BMCT {
let ID = self.ID().map(|x| {
x.to_string()
});
let TYPE = self.TYPE().map(|x| {
x.to_string()
});
let CONTOUR_IDX = self.CONTOUR_IDX();
let GAIN = self.GAIN();
let REGION_NAME = self.REGION_NAME().map(|x| {
x.to_string()
});
let GEOGRAPHY = self.GEOGRAPHY().map(|x| {
x.to_string()
});
let GEOGRAPHY_TEXT = self.GEOGRAPHY_TEXT().map(|x| {
x.to_string()
});
let GEOGRAPHY_JSON = self.GEOGRAPHY_JSON().map(|x| {
x.to_string()
});
let GEOGRAPHY_TYPE = self.GEOGRAPHY_TYPE().map(|x| {
x.to_string()
});
let GEOGRAPHY_NDIMS = self.GEOGRAPHY_NDIMS();
let GEOGRAPHY_SRID = self.GEOGRAPHY_SRID();
BMCT {
ID,
TYPE,
CONTOUR_IDX,
GAIN,
REGION_NAME,
GEOGRAPHY,
GEOGRAPHY_TEXT,
GEOGRAPHY_JSON,
GEOGRAPHY_TYPE,
GEOGRAPHY_NDIMS,
GEOGRAPHY_SRID,
}
}
#[inline]
pub fn ID(&self) -> Option<&'a str> {
unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(BMC::VT_ID, None)}
}
#[inline]
pub fn TYPE(&self) -> Option<&'a str> {
unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(BMC::VT_TYPE, None)}
}
#[inline]
pub fn CONTOUR_IDX(&self) -> i32 {
unsafe { self._tab.get::<i32>(BMC::VT_CONTOUR_IDX, Some(0)).unwrap()}
}
#[inline]
pub fn GAIN(&self) -> f64 {
unsafe { self._tab.get::<f64>(BMC::VT_GAIN, Some(0.0)).unwrap()}
}
#[inline]
pub fn REGION_NAME(&self) -> Option<&'a str> {
unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(BMC::VT_REGION_NAME, None)}
}
#[inline]
pub fn GEOGRAPHY(&self) -> Option<&'a str> {
unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(BMC::VT_GEOGRAPHY, None)}
}
#[inline]
pub fn GEOGRAPHY_TEXT(&self) -> Option<&'a str> {
unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(BMC::VT_GEOGRAPHY_TEXT, None)}
}
#[inline]
pub fn GEOGRAPHY_JSON(&self) -> Option<&'a str> {
unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(BMC::VT_GEOGRAPHY_JSON, None)}
}
#[inline]
pub fn GEOGRAPHY_TYPE(&self) -> Option<&'a str> {
unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(BMC::VT_GEOGRAPHY_TYPE, None)}
}
#[inline]
pub fn GEOGRAPHY_NDIMS(&self) -> i32 {
unsafe { self._tab.get::<i32>(BMC::VT_GEOGRAPHY_NDIMS, Some(0)).unwrap()}
}
#[inline]
pub fn GEOGRAPHY_SRID(&self) -> i32 {
unsafe { self._tab.get::<i32>(BMC::VT_GEOGRAPHY_SRID, Some(0)).unwrap()}
}
}
impl flatbuffers::Verifiable for BMC<'_> {
#[inline]
fn run_verifier(
v: &mut flatbuffers::Verifier, pos: usize
) -> Result<(), flatbuffers::InvalidFlatbuffer> {
use self::flatbuffers::Verifiable;
v.visit_table(pos)?
.visit_field::<flatbuffers::ForwardsUOffset<&str>>("ID", Self::VT_ID, false)?
.visit_field::<flatbuffers::ForwardsUOffset<&str>>("TYPE", Self::VT_TYPE, false)?
.visit_field::<i32>("CONTOUR_IDX", Self::VT_CONTOUR_IDX, false)?
.visit_field::<f64>("GAIN", Self::VT_GAIN, false)?
.visit_field::<flatbuffers::ForwardsUOffset<&str>>("REGION_NAME", Self::VT_REGION_NAME, false)?
.visit_field::<flatbuffers::ForwardsUOffset<&str>>("GEOGRAPHY", Self::VT_GEOGRAPHY, false)?
.visit_field::<flatbuffers::ForwardsUOffset<&str>>("GEOGRAPHY_TEXT", Self::VT_GEOGRAPHY_TEXT, false)?
.visit_field::<flatbuffers::ForwardsUOffset<&str>>("GEOGRAPHY_JSON", Self::VT_GEOGRAPHY_JSON, false)?
.visit_field::<flatbuffers::ForwardsUOffset<&str>>("GEOGRAPHY_TYPE", Self::VT_GEOGRAPHY_TYPE, false)?
.visit_field::<i32>("GEOGRAPHY_NDIMS", Self::VT_GEOGRAPHY_NDIMS, false)?
.visit_field::<i32>("GEOGRAPHY_SRID", Self::VT_GEOGRAPHY_SRID, false)?
.finish();
Ok(())
}
}
pub struct BMCArgs<'a> {
pub ID: Option<flatbuffers::WIPOffset<&'a str>>,
pub TYPE: Option<flatbuffers::WIPOffset<&'a str>>,
pub CONTOUR_IDX: i32,
pub GAIN: f64,
pub REGION_NAME: Option<flatbuffers::WIPOffset<&'a str>>,
pub GEOGRAPHY: Option<flatbuffers::WIPOffset<&'a str>>,
pub GEOGRAPHY_TEXT: Option<flatbuffers::WIPOffset<&'a str>>,
pub GEOGRAPHY_JSON: Option<flatbuffers::WIPOffset<&'a str>>,
pub GEOGRAPHY_TYPE: Option<flatbuffers::WIPOffset<&'a str>>,
pub GEOGRAPHY_NDIMS: i32,
pub GEOGRAPHY_SRID: i32,
}
impl<'a> Default for BMCArgs<'a> {
#[inline]
fn default() -> Self {
BMCArgs {
ID: None,
TYPE: None,
CONTOUR_IDX: 0,
GAIN: 0.0,
REGION_NAME: None,
GEOGRAPHY: None,
GEOGRAPHY_TEXT: None,
GEOGRAPHY_JSON: None,
GEOGRAPHY_TYPE: None,
GEOGRAPHY_NDIMS: 0,
GEOGRAPHY_SRID: 0,
}
}
}
pub struct BMCBuilder<'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> BMCBuilder<'a, 'b, A> {
#[inline]
pub fn add_ID(&mut self, ID: flatbuffers::WIPOffset<&'b str>) {
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(BMC::VT_ID, ID);
}
#[inline]
pub fn add_TYPE(&mut self, TYPE: flatbuffers::WIPOffset<&'b str>) {
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(BMC::VT_TYPE, TYPE);
}
#[inline]
pub fn add_CONTOUR_IDX(&mut self, CONTOUR_IDX: i32) {
self.fbb_.push_slot::<i32>(BMC::VT_CONTOUR_IDX, CONTOUR_IDX, 0);
}
#[inline]
pub fn add_GAIN(&mut self, GAIN: f64) {
self.fbb_.push_slot::<f64>(BMC::VT_GAIN, GAIN, 0.0);
}
#[inline]
pub fn add_REGION_NAME(&mut self, REGION_NAME: flatbuffers::WIPOffset<&'b str>) {
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(BMC::VT_REGION_NAME, REGION_NAME);
}
#[inline]
pub fn add_GEOGRAPHY(&mut self, GEOGRAPHY: flatbuffers::WIPOffset<&'b str>) {
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(BMC::VT_GEOGRAPHY, GEOGRAPHY);
}
#[inline]
pub fn add_GEOGRAPHY_TEXT(&mut self, GEOGRAPHY_TEXT: flatbuffers::WIPOffset<&'b str>) {
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(BMC::VT_GEOGRAPHY_TEXT, GEOGRAPHY_TEXT);
}
#[inline]
pub fn add_GEOGRAPHY_JSON(&mut self, GEOGRAPHY_JSON: flatbuffers::WIPOffset<&'b str>) {
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(BMC::VT_GEOGRAPHY_JSON, GEOGRAPHY_JSON);
}
#[inline]
pub fn add_GEOGRAPHY_TYPE(&mut self, GEOGRAPHY_TYPE: flatbuffers::WIPOffset<&'b str>) {
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(BMC::VT_GEOGRAPHY_TYPE, GEOGRAPHY_TYPE);
}
#[inline]
pub fn add_GEOGRAPHY_NDIMS(&mut self, GEOGRAPHY_NDIMS: i32) {
self.fbb_.push_slot::<i32>(BMC::VT_GEOGRAPHY_NDIMS, GEOGRAPHY_NDIMS, 0);
}
#[inline]
pub fn add_GEOGRAPHY_SRID(&mut self, GEOGRAPHY_SRID: i32) {
self.fbb_.push_slot::<i32>(BMC::VT_GEOGRAPHY_SRID, GEOGRAPHY_SRID, 0);
}
#[inline]
pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a, A>) -> BMCBuilder<'a, 'b, A> {
let start = _fbb.start_table();
BMCBuilder {
fbb_: _fbb,
start_: start,
}
}
#[inline]
pub fn finish(self) -> flatbuffers::WIPOffset<BMC<'a>> {
let o = self.fbb_.end_table(self.start_);
flatbuffers::WIPOffset::new(o.value())
}
}
impl core::fmt::Debug for BMC<'_> {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
let mut ds = f.debug_struct("BMC");
ds.field("ID", &self.ID());
ds.field("TYPE", &self.TYPE());
ds.field("CONTOUR_IDX", &self.CONTOUR_IDX());
ds.field("GAIN", &self.GAIN());
ds.field("REGION_NAME", &self.REGION_NAME());
ds.field("GEOGRAPHY", &self.GEOGRAPHY());
ds.field("GEOGRAPHY_TEXT", &self.GEOGRAPHY_TEXT());
ds.field("GEOGRAPHY_JSON", &self.GEOGRAPHY_JSON());
ds.field("GEOGRAPHY_TYPE", &self.GEOGRAPHY_TYPE());
ds.field("GEOGRAPHY_NDIMS", &self.GEOGRAPHY_NDIMS());
ds.field("GEOGRAPHY_SRID", &self.GEOGRAPHY_SRID());
ds.finish()
}
}
#[non_exhaustive]
#[derive(Debug, Clone, PartialEq)]
pub struct BMCT {
pub ID: Option<String>,
pub TYPE: Option<String>,
pub CONTOUR_IDX: i32,
pub GAIN: f64,
pub REGION_NAME: Option<String>,
pub GEOGRAPHY: Option<String>,
pub GEOGRAPHY_TEXT: Option<String>,
pub GEOGRAPHY_JSON: Option<String>,
pub GEOGRAPHY_TYPE: Option<String>,
pub GEOGRAPHY_NDIMS: i32,
pub GEOGRAPHY_SRID: i32,
}
impl Default for BMCT {
fn default() -> Self {
Self {
ID: None,
TYPE: None,
CONTOUR_IDX: 0,
GAIN: 0.0,
REGION_NAME: None,
GEOGRAPHY: None,
GEOGRAPHY_TEXT: None,
GEOGRAPHY_JSON: None,
GEOGRAPHY_TYPE: None,
GEOGRAPHY_NDIMS: 0,
GEOGRAPHY_SRID: 0,
}
}
}
impl BMCT {
pub fn pack<'b, A: flatbuffers::Allocator + 'b>(
&self,
_fbb: &mut flatbuffers::FlatBufferBuilder<'b, A>
) -> flatbuffers::WIPOffset<BMC<'b>> {
let ID = self.ID.as_ref().map(|x|{
_fbb.create_string(x)
});
let TYPE = self.TYPE.as_ref().map(|x|{
_fbb.create_string(x)
});
let CONTOUR_IDX = self.CONTOUR_IDX;
let GAIN = self.GAIN;
let REGION_NAME = self.REGION_NAME.as_ref().map(|x|{
_fbb.create_string(x)
});
let GEOGRAPHY = self.GEOGRAPHY.as_ref().map(|x|{
_fbb.create_string(x)
});
let GEOGRAPHY_TEXT = self.GEOGRAPHY_TEXT.as_ref().map(|x|{
_fbb.create_string(x)
});
let GEOGRAPHY_JSON = self.GEOGRAPHY_JSON.as_ref().map(|x|{
_fbb.create_string(x)
});
let GEOGRAPHY_TYPE = self.GEOGRAPHY_TYPE.as_ref().map(|x|{
_fbb.create_string(x)
});
let GEOGRAPHY_NDIMS = self.GEOGRAPHY_NDIMS;
let GEOGRAPHY_SRID = self.GEOGRAPHY_SRID;
BMC::create(_fbb, &BMCArgs{
ID,
TYPE,
CONTOUR_IDX,
GAIN,
REGION_NAME,
GEOGRAPHY,
GEOGRAPHY_TEXT,
GEOGRAPHY_JSON,
GEOGRAPHY_TYPE,
GEOGRAPHY_NDIMS,
GEOGRAPHY_SRID,
})
}
}
#[inline]
pub fn root_as_BMC(buf: &[u8]) -> Result<BMC, flatbuffers::InvalidFlatbuffer> {
flatbuffers::root::<BMC>(buf)
}
#[inline]
pub fn size_prefixed_root_as_BMC(buf: &[u8]) -> Result<BMC, flatbuffers::InvalidFlatbuffer> {
flatbuffers::size_prefixed_root::<BMC>(buf)
}
#[inline]
pub fn root_as_BMC_with_opts<'b, 'o>(
opts: &'o flatbuffers::VerifierOptions,
buf: &'b [u8],
) -> Result<BMC<'b>, flatbuffers::InvalidFlatbuffer> {
flatbuffers::root_with_opts::<BMC<'b>>(opts, buf)
}
#[inline]
pub fn size_prefixed_root_as_BMC_with_opts<'b, 'o>(
opts: &'o flatbuffers::VerifierOptions,
buf: &'b [u8],
) -> Result<BMC<'b>, flatbuffers::InvalidFlatbuffer> {
flatbuffers::size_prefixed_root_with_opts::<BMC<'b>>(opts, buf)
}
#[inline]
pub unsafe fn root_as_BMC_unchecked(buf: &[u8]) -> BMC {
flatbuffers::root_unchecked::<BMC>(buf)
}
#[inline]
pub unsafe fn size_prefixed_root_as_BMC_unchecked(buf: &[u8]) -> BMC {
flatbuffers::size_prefixed_root_unchecked::<BMC>(buf)
}
pub const BMC_IDENTIFIER: &str = "$BMC";
#[inline]
pub fn BMC_buffer_has_identifier(buf: &[u8]) -> bool {
flatbuffers::buffer_has_identifier(buf, BMC_IDENTIFIER, false)
}
#[inline]
pub fn BMC_size_prefixed_buffer_has_identifier(buf: &[u8]) -> bool {
flatbuffers::buffer_has_identifier(buf, BMC_IDENTIFIER, true)
}
#[inline]
pub fn finish_BMC_buffer<'a, 'b, A: flatbuffers::Allocator + 'a>(
fbb: &'b mut flatbuffers::FlatBufferBuilder<'a, A>,
root: flatbuffers::WIPOffset<BMC<'a>>) {
fbb.finish(root, Some(BMC_IDENTIFIER));
}
#[inline]
pub fn finish_size_prefixed_BMC_buffer<'a, 'b, A: flatbuffers::Allocator + 'a>(fbb: &'b mut flatbuffers::FlatBufferBuilder<'a, A>, root: flatbuffers::WIPOffset<BMC<'a>>) {
fbb.finish_size_prefixed(root, Some(BMC_IDENTIFIER));
}