use core::mem;
use core::cmp::Ordering;
extern crate flatbuffers;
use self::flatbuffers::{EndianScalar, Follow};
pub enum TPNOffset {}
#[derive(Copy, Clone, PartialEq)]
pub struct TPN<'a> {
pub _tab: flatbuffers::Table<'a>,
}
impl<'a> flatbuffers::Follow<'a> for TPN<'a> {
type Inner = TPN<'a>;
#[inline]
unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
Self { _tab: flatbuffers::Table::new(buf, loc) }
}
}
impl<'a> TPN<'a> {
pub const VT_ID: flatbuffers::VOffsetT = 4;
pub const VT_NAME: flatbuffers::VOffsetT = 6;
pub const VT_NID: flatbuffers::VOffsetT = 8;
pub const VT_TID: flatbuffers::VOffsetT = 10;
pub const VT_TTF: flatbuffers::VOffsetT = 12;
pub const VT_SYMBOL_RATE: flatbuffers::VOffsetT = 14;
pub const VT_FEC: flatbuffers::VOffsetT = 16;
pub const VT_MODULATION: flatbuffers::VOffsetT = 18;
pub const VT_FORMAT: flatbuffers::VOffsetT = 20;
pub const VT_SYSTEM: flatbuffers::VOffsetT = 22;
pub const VT_CHANNELS: flatbuffers::VOffsetT = 24;
#[inline]
pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
TPN { _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 TPNArgs<'args>
) -> flatbuffers::WIPOffset<TPN<'bldr>> {
let mut builder = TPNBuilder::new(_fbb);
builder.add_SYMBOL_RATE(args.SYMBOL_RATE);
builder.add_TTF(args.TTF);
if let Some(x) = args.CHANNELS { builder.add_CHANNELS(x); }
if let Some(x) = args.SYSTEM { builder.add_SYSTEM(x); }
if let Some(x) = args.FORMAT { builder.add_FORMAT(x); }
if let Some(x) = args.MODULATION { builder.add_MODULATION(x); }
builder.add_FEC(args.FEC);
if let Some(x) = args.TID { builder.add_TID(x); }
if let Some(x) = args.NID { builder.add_NID(x); }
if let Some(x) = args.NAME { builder.add_NAME(x); }
if let Some(x) = args.ID { builder.add_ID(x); }
builder.finish()
}
pub fn unpack(&self) -> TPNT {
let ID = self.ID().map(|x| {
x.to_string()
});
let NAME = self.NAME().map(|x| {
x.to_string()
});
let NID = self.NID().map(|x| {
x.to_string()
});
let TID = self.TID().map(|x| {
x.to_string()
});
let TTF = self.TTF();
let SYMBOL_RATE = self.SYMBOL_RATE();
let FEC = self.FEC();
let MODULATION = self.MODULATION().map(|x| {
x.to_string()
});
let FORMAT = self.FORMAT().map(|x| {
x.to_string()
});
let SYSTEM = self.SYSTEM().map(|x| {
x.to_string()
});
let CHANNELS = self.CHANNELS().map(|x| {
x.iter().map(|s| s.to_string()).collect()
});
TPNT {
ID,
NAME,
NID,
TID,
TTF,
SYMBOL_RATE,
FEC,
MODULATION,
FORMAT,
SYSTEM,
CHANNELS,
}
}
#[inline]
pub fn ID(&self) -> Option<&'a str> {
unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(TPN::VT_ID, None)}
}
#[inline]
pub fn NAME(&self) -> Option<&'a str> {
unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(TPN::VT_NAME, None)}
}
#[inline]
pub fn NID(&self) -> Option<&'a str> {
unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(TPN::VT_NID, None)}
}
#[inline]
pub fn TID(&self) -> Option<&'a str> {
unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(TPN::VT_TID, None)}
}
#[inline]
pub fn TTF(&self) -> f64 {
unsafe { self._tab.get::<f64>(TPN::VT_TTF, Some(0.0)).unwrap()}
}
#[inline]
pub fn SYMBOL_RATE(&self) -> f64 {
unsafe { self._tab.get::<f64>(TPN::VT_SYMBOL_RATE, Some(0.0)).unwrap()}
}
#[inline]
pub fn FEC(&self) -> i32 {
unsafe { self._tab.get::<i32>(TPN::VT_FEC, Some(0)).unwrap()}
}
#[inline]
pub fn MODULATION(&self) -> Option<&'a str> {
unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(TPN::VT_MODULATION, None)}
}
#[inline]
pub fn FORMAT(&self) -> Option<&'a str> {
unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(TPN::VT_FORMAT, None)}
}
#[inline]
pub fn SYSTEM(&self) -> Option<&'a str> {
unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(TPN::VT_SYSTEM, None)}
}
#[inline]
pub fn CHANNELS(&self) -> Option<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<&'a str>>> {
unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<&'a str>>>>(TPN::VT_CHANNELS, None)}
}
}
impl flatbuffers::Verifiable for TPN<'_> {
#[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>>("NAME", Self::VT_NAME, false)?
.visit_field::<flatbuffers::ForwardsUOffset<&str>>("NID", Self::VT_NID, false)?
.visit_field::<flatbuffers::ForwardsUOffset<&str>>("TID", Self::VT_TID, false)?
.visit_field::<f64>("TTF", Self::VT_TTF, false)?
.visit_field::<f64>("SYMBOL_RATE", Self::VT_SYMBOL_RATE, false)?
.visit_field::<i32>("FEC", Self::VT_FEC, false)?
.visit_field::<flatbuffers::ForwardsUOffset<&str>>("MODULATION", Self::VT_MODULATION, false)?
.visit_field::<flatbuffers::ForwardsUOffset<&str>>("FORMAT", Self::VT_FORMAT, false)?
.visit_field::<flatbuffers::ForwardsUOffset<&str>>("SYSTEM", Self::VT_SYSTEM, false)?
.visit_field::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'_, flatbuffers::ForwardsUOffset<&'_ str>>>>("CHANNELS", Self::VT_CHANNELS, false)?
.finish();
Ok(())
}
}
pub struct TPNArgs<'a> {
pub ID: Option<flatbuffers::WIPOffset<&'a str>>,
pub NAME: Option<flatbuffers::WIPOffset<&'a str>>,
pub NID: Option<flatbuffers::WIPOffset<&'a str>>,
pub TID: Option<flatbuffers::WIPOffset<&'a str>>,
pub TTF: f64,
pub SYMBOL_RATE: f64,
pub FEC: i32,
pub MODULATION: Option<flatbuffers::WIPOffset<&'a str>>,
pub FORMAT: Option<flatbuffers::WIPOffset<&'a str>>,
pub SYSTEM: Option<flatbuffers::WIPOffset<&'a str>>,
pub CHANNELS: Option<flatbuffers::WIPOffset<flatbuffers::Vector<'a, flatbuffers::ForwardsUOffset<&'a str>>>>,
}
impl<'a> Default for TPNArgs<'a> {
#[inline]
fn default() -> Self {
TPNArgs {
ID: None,
NAME: None,
NID: None,
TID: None,
TTF: 0.0,
SYMBOL_RATE: 0.0,
FEC: 0,
MODULATION: None,
FORMAT: None,
SYSTEM: None,
CHANNELS: None,
}
}
}
pub struct TPNBuilder<'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> TPNBuilder<'a, 'b, A> {
#[inline]
pub fn add_ID(&mut self, ID: flatbuffers::WIPOffset<&'b str>) {
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(TPN::VT_ID, ID);
}
#[inline]
pub fn add_NAME(&mut self, NAME: flatbuffers::WIPOffset<&'b str>) {
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(TPN::VT_NAME, NAME);
}
#[inline]
pub fn add_NID(&mut self, NID: flatbuffers::WIPOffset<&'b str>) {
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(TPN::VT_NID, NID);
}
#[inline]
pub fn add_TID(&mut self, TID: flatbuffers::WIPOffset<&'b str>) {
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(TPN::VT_TID, TID);
}
#[inline]
pub fn add_TTF(&mut self, TTF: f64) {
self.fbb_.push_slot::<f64>(TPN::VT_TTF, TTF, 0.0);
}
#[inline]
pub fn add_SYMBOL_RATE(&mut self, SYMBOL_RATE: f64) {
self.fbb_.push_slot::<f64>(TPN::VT_SYMBOL_RATE, SYMBOL_RATE, 0.0);
}
#[inline]
pub fn add_FEC(&mut self, FEC: i32) {
self.fbb_.push_slot::<i32>(TPN::VT_FEC, FEC, 0);
}
#[inline]
pub fn add_MODULATION(&mut self, MODULATION: flatbuffers::WIPOffset<&'b str>) {
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(TPN::VT_MODULATION, MODULATION);
}
#[inline]
pub fn add_FORMAT(&mut self, FORMAT: flatbuffers::WIPOffset<&'b str>) {
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(TPN::VT_FORMAT, FORMAT);
}
#[inline]
pub fn add_SYSTEM(&mut self, SYSTEM: flatbuffers::WIPOffset<&'b str>) {
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(TPN::VT_SYSTEM, SYSTEM);
}
#[inline]
pub fn add_CHANNELS(&mut self, CHANNELS: flatbuffers::WIPOffset<flatbuffers::Vector<'b , flatbuffers::ForwardsUOffset<&'b str>>>) {
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(TPN::VT_CHANNELS, CHANNELS);
}
#[inline]
pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a, A>) -> TPNBuilder<'a, 'b, A> {
let start = _fbb.start_table();
TPNBuilder {
fbb_: _fbb,
start_: start,
}
}
#[inline]
pub fn finish(self) -> flatbuffers::WIPOffset<TPN<'a>> {
let o = self.fbb_.end_table(self.start_);
flatbuffers::WIPOffset::new(o.value())
}
}
impl core::fmt::Debug for TPN<'_> {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
let mut ds = f.debug_struct("TPN");
ds.field("ID", &self.ID());
ds.field("NAME", &self.NAME());
ds.field("NID", &self.NID());
ds.field("TID", &self.TID());
ds.field("TTF", &self.TTF());
ds.field("SYMBOL_RATE", &self.SYMBOL_RATE());
ds.field("FEC", &self.FEC());
ds.field("MODULATION", &self.MODULATION());
ds.field("FORMAT", &self.FORMAT());
ds.field("SYSTEM", &self.SYSTEM());
ds.field("CHANNELS", &self.CHANNELS());
ds.finish()
}
}
#[non_exhaustive]
#[derive(Debug, Clone, PartialEq)]
pub struct TPNT {
pub ID: Option<String>,
pub NAME: Option<String>,
pub NID: Option<String>,
pub TID: Option<String>,
pub TTF: f64,
pub SYMBOL_RATE: f64,
pub FEC: i32,
pub MODULATION: Option<String>,
pub FORMAT: Option<String>,
pub SYSTEM: Option<String>,
pub CHANNELS: Option<Vec<String>>,
}
impl Default for TPNT {
fn default() -> Self {
Self {
ID: None,
NAME: None,
NID: None,
TID: None,
TTF: 0.0,
SYMBOL_RATE: 0.0,
FEC: 0,
MODULATION: None,
FORMAT: None,
SYSTEM: None,
CHANNELS: None,
}
}
}
impl TPNT {
pub fn pack<'b, A: flatbuffers::Allocator + 'b>(
&self,
_fbb: &mut flatbuffers::FlatBufferBuilder<'b, A>
) -> flatbuffers::WIPOffset<TPN<'b>> {
let ID = self.ID.as_ref().map(|x|{
_fbb.create_string(x)
});
let NAME = self.NAME.as_ref().map(|x|{
_fbb.create_string(x)
});
let NID = self.NID.as_ref().map(|x|{
_fbb.create_string(x)
});
let TID = self.TID.as_ref().map(|x|{
_fbb.create_string(x)
});
let TTF = self.TTF;
let SYMBOL_RATE = self.SYMBOL_RATE;
let FEC = self.FEC;
let MODULATION = self.MODULATION.as_ref().map(|x|{
_fbb.create_string(x)
});
let FORMAT = self.FORMAT.as_ref().map(|x|{
_fbb.create_string(x)
});
let SYSTEM = self.SYSTEM.as_ref().map(|x|{
_fbb.create_string(x)
});
let CHANNELS = self.CHANNELS.as_ref().map(|x|{
let w: Vec<_> = x.iter().map(|s| _fbb.create_string(s)).collect();_fbb.create_vector(&w)
});
TPN::create(_fbb, &TPNArgs{
ID,
NAME,
NID,
TID,
TTF,
SYMBOL_RATE,
FEC,
MODULATION,
FORMAT,
SYSTEM,
CHANNELS,
})
}
}
#[inline]
pub fn root_as_TPN(buf: &[u8]) -> Result<TPN, flatbuffers::InvalidFlatbuffer> {
flatbuffers::root::<TPN>(buf)
}
#[inline]
pub fn size_prefixed_root_as_TPN(buf: &[u8]) -> Result<TPN, flatbuffers::InvalidFlatbuffer> {
flatbuffers::size_prefixed_root::<TPN>(buf)
}
#[inline]
pub fn root_as_TPN_with_opts<'b, 'o>(
opts: &'o flatbuffers::VerifierOptions,
buf: &'b [u8],
) -> Result<TPN<'b>, flatbuffers::InvalidFlatbuffer> {
flatbuffers::root_with_opts::<TPN<'b>>(opts, buf)
}
#[inline]
pub fn size_prefixed_root_as_TPN_with_opts<'b, 'o>(
opts: &'o flatbuffers::VerifierOptions,
buf: &'b [u8],
) -> Result<TPN<'b>, flatbuffers::InvalidFlatbuffer> {
flatbuffers::size_prefixed_root_with_opts::<TPN<'b>>(opts, buf)
}
#[inline]
pub unsafe fn root_as_TPN_unchecked(buf: &[u8]) -> TPN {
flatbuffers::root_unchecked::<TPN>(buf)
}
#[inline]
pub unsafe fn size_prefixed_root_as_TPN_unchecked(buf: &[u8]) -> TPN {
flatbuffers::size_prefixed_root_unchecked::<TPN>(buf)
}
pub const TPN_IDENTIFIER: &str = "$TPN";
#[inline]
pub fn TPN_buffer_has_identifier(buf: &[u8]) -> bool {
flatbuffers::buffer_has_identifier(buf, TPN_IDENTIFIER, false)
}
#[inline]
pub fn TPN_size_prefixed_buffer_has_identifier(buf: &[u8]) -> bool {
flatbuffers::buffer_has_identifier(buf, TPN_IDENTIFIER, true)
}
#[inline]
pub fn finish_TPN_buffer<'a, 'b, A: flatbuffers::Allocator + 'a>(
fbb: &'b mut flatbuffers::FlatBufferBuilder<'a, A>,
root: flatbuffers::WIPOffset<TPN<'a>>) {
fbb.finish(root, Some(TPN_IDENTIFIER));
}
#[inline]
pub fn finish_size_prefixed_TPN_buffer<'a, 'b, A: flatbuffers::Allocator + 'a>(fbb: &'b mut flatbuffers::FlatBufferBuilder<'a, A>, root: flatbuffers::WIPOffset<TPN<'a>>) {
fbb.finish_size_prefixed(root, Some(TPN_IDENTIFIER));
}