use core::mem;
use core::cmp::Ordering;
extern crate flatbuffers;
use self::flatbuffers::{EndianScalar, Follow};
pub enum AOFOffset {}
#[derive(Copy, Clone, PartialEq)]
pub struct AOF<'a> {
pub _tab: flatbuffers::Table<'a>,
}
impl<'a> flatbuffers::Follow<'a> for AOF<'a> {
type Inner = AOF<'a>;
#[inline]
unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
Self { _tab: flatbuffers::Table::new(buf, loc) }
}
}
impl<'a> AOF<'a> {
pub const VT_VERSION: flatbuffers::VOffsetT = 4;
pub const VT_SPACECRAFT_ID: flatbuffers::VOffsetT = 6;
pub const VT_VIRTUAL_CHANNEL_ID: flatbuffers::VOffsetT = 8;
pub const VT_VIRTUAL_FRAME_COUNT: flatbuffers::VOffsetT = 10;
pub const VT_REPLAY_FLAG: flatbuffers::VOffsetT = 12;
pub const VT_VC_FRAME_COUNT_USAGE: flatbuffers::VOffsetT = 14;
pub const VT_VC_FRAME_COUNT_CYCLE: flatbuffers::VOffsetT = 16;
pub const VT_INSERT_ZONE: flatbuffers::VOffsetT = 18;
pub const VT_DATA: flatbuffers::VOffsetT = 20;
pub const VT_OCF: flatbuffers::VOffsetT = 22;
pub const VT_FECF: flatbuffers::VOffsetT = 24;
#[inline]
pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
AOF { _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 AOFArgs<'args>
) -> flatbuffers::WIPOffset<AOF<'bldr>> {
let mut builder = AOFBuilder::new(_fbb);
if let Some(x) = args.OCF { builder.add_OCF(x); }
if let Some(x) = args.DATA { builder.add_DATA(x); }
if let Some(x) = args.INSERT_ZONE { builder.add_INSERT_ZONE(x); }
builder.add_VIRTUAL_FRAME_COUNT(args.VIRTUAL_FRAME_COUNT);
builder.add_FECF(args.FECF);
builder.add_SPACECRAFT_ID(args.SPACECRAFT_ID);
builder.add_VC_FRAME_COUNT_CYCLE(args.VC_FRAME_COUNT_CYCLE);
builder.add_VC_FRAME_COUNT_USAGE(args.VC_FRAME_COUNT_USAGE);
builder.add_REPLAY_FLAG(args.REPLAY_FLAG);
builder.add_VIRTUAL_CHANNEL_ID(args.VIRTUAL_CHANNEL_ID);
builder.add_VERSION(args.VERSION);
builder.finish()
}
pub fn unpack(&self) -> AOFT {
let VERSION = self.VERSION();
let SPACECRAFT_ID = self.SPACECRAFT_ID();
let VIRTUAL_CHANNEL_ID = self.VIRTUAL_CHANNEL_ID();
let VIRTUAL_FRAME_COUNT = self.VIRTUAL_FRAME_COUNT();
let REPLAY_FLAG = self.REPLAY_FLAG();
let VC_FRAME_COUNT_USAGE = self.VC_FRAME_COUNT_USAGE();
let VC_FRAME_COUNT_CYCLE = self.VC_FRAME_COUNT_CYCLE();
let INSERT_ZONE = self.INSERT_ZONE().map(|x| {
x.into_iter().collect()
});
let DATA = self.DATA().map(|x| {
x.into_iter().collect()
});
let OCF = self.OCF().map(|x| {
x.into_iter().collect()
});
let FECF = self.FECF();
AOFT {
VERSION,
SPACECRAFT_ID,
VIRTUAL_CHANNEL_ID,
VIRTUAL_FRAME_COUNT,
REPLAY_FLAG,
VC_FRAME_COUNT_USAGE,
VC_FRAME_COUNT_CYCLE,
INSERT_ZONE,
DATA,
OCF,
FECF,
}
}
#[inline]
pub fn VERSION(&self) -> u8 {
unsafe { self._tab.get::<u8>(AOF::VT_VERSION, Some(0)).unwrap()}
}
#[inline]
pub fn SPACECRAFT_ID(&self) -> u16 {
unsafe { self._tab.get::<u16>(AOF::VT_SPACECRAFT_ID, Some(0)).unwrap()}
}
#[inline]
pub fn VIRTUAL_CHANNEL_ID(&self) -> u8 {
unsafe { self._tab.get::<u8>(AOF::VT_VIRTUAL_CHANNEL_ID, Some(0)).unwrap()}
}
#[inline]
pub fn VIRTUAL_FRAME_COUNT(&self) -> u32 {
unsafe { self._tab.get::<u32>(AOF::VT_VIRTUAL_FRAME_COUNT, Some(0)).unwrap()}
}
#[inline]
pub fn REPLAY_FLAG(&self) -> bool {
unsafe { self._tab.get::<bool>(AOF::VT_REPLAY_FLAG, Some(false)).unwrap()}
}
#[inline]
pub fn VC_FRAME_COUNT_USAGE(&self) -> bool {
unsafe { self._tab.get::<bool>(AOF::VT_VC_FRAME_COUNT_USAGE, Some(false)).unwrap()}
}
#[inline]
pub fn VC_FRAME_COUNT_CYCLE(&self) -> u8 {
unsafe { self._tab.get::<u8>(AOF::VT_VC_FRAME_COUNT_CYCLE, Some(0)).unwrap()}
}
#[inline]
pub fn INSERT_ZONE(&self) -> Option<flatbuffers::Vector<'a, u8>> {
unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, u8>>>(AOF::VT_INSERT_ZONE, None)}
}
#[inline]
pub fn DATA(&self) -> Option<flatbuffers::Vector<'a, u8>> {
unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, u8>>>(AOF::VT_DATA, None)}
}
#[inline]
pub fn OCF(&self) -> Option<flatbuffers::Vector<'a, u8>> {
unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, u8>>>(AOF::VT_OCF, None)}
}
#[inline]
pub fn FECF(&self) -> u16 {
unsafe { self._tab.get::<u16>(AOF::VT_FECF, Some(0)).unwrap()}
}
}
impl flatbuffers::Verifiable for AOF<'_> {
#[inline]
fn run_verifier(
v: &mut flatbuffers::Verifier, pos: usize
) -> Result<(), flatbuffers::InvalidFlatbuffer> {
use self::flatbuffers::Verifiable;
v.visit_table(pos)?
.visit_field::<u8>("VERSION", Self::VT_VERSION, false)?
.visit_field::<u16>("SPACECRAFT_ID", Self::VT_SPACECRAFT_ID, false)?
.visit_field::<u8>("VIRTUAL_CHANNEL_ID", Self::VT_VIRTUAL_CHANNEL_ID, false)?
.visit_field::<u32>("VIRTUAL_FRAME_COUNT", Self::VT_VIRTUAL_FRAME_COUNT, false)?
.visit_field::<bool>("REPLAY_FLAG", Self::VT_REPLAY_FLAG, false)?
.visit_field::<bool>("VC_FRAME_COUNT_USAGE", Self::VT_VC_FRAME_COUNT_USAGE, false)?
.visit_field::<u8>("VC_FRAME_COUNT_CYCLE", Self::VT_VC_FRAME_COUNT_CYCLE, false)?
.visit_field::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'_, u8>>>("INSERT_ZONE", Self::VT_INSERT_ZONE, false)?
.visit_field::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'_, u8>>>("DATA", Self::VT_DATA, false)?
.visit_field::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'_, u8>>>("OCF", Self::VT_OCF, false)?
.visit_field::<u16>("FECF", Self::VT_FECF, false)?
.finish();
Ok(())
}
}
pub struct AOFArgs<'a> {
pub VERSION: u8,
pub SPACECRAFT_ID: u16,
pub VIRTUAL_CHANNEL_ID: u8,
pub VIRTUAL_FRAME_COUNT: u32,
pub REPLAY_FLAG: bool,
pub VC_FRAME_COUNT_USAGE: bool,
pub VC_FRAME_COUNT_CYCLE: u8,
pub INSERT_ZONE: Option<flatbuffers::WIPOffset<flatbuffers::Vector<'a, u8>>>,
pub DATA: Option<flatbuffers::WIPOffset<flatbuffers::Vector<'a, u8>>>,
pub OCF: Option<flatbuffers::WIPOffset<flatbuffers::Vector<'a, u8>>>,
pub FECF: u16,
}
impl<'a> Default for AOFArgs<'a> {
#[inline]
fn default() -> Self {
AOFArgs {
VERSION: 0,
SPACECRAFT_ID: 0,
VIRTUAL_CHANNEL_ID: 0,
VIRTUAL_FRAME_COUNT: 0,
REPLAY_FLAG: false,
VC_FRAME_COUNT_USAGE: false,
VC_FRAME_COUNT_CYCLE: 0,
INSERT_ZONE: None,
DATA: None,
OCF: None,
FECF: 0,
}
}
}
pub struct AOFBuilder<'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> AOFBuilder<'a, 'b, A> {
#[inline]
pub fn add_VERSION(&mut self, VERSION: u8) {
self.fbb_.push_slot::<u8>(AOF::VT_VERSION, VERSION, 0);
}
#[inline]
pub fn add_SPACECRAFT_ID(&mut self, SPACECRAFT_ID: u16) {
self.fbb_.push_slot::<u16>(AOF::VT_SPACECRAFT_ID, SPACECRAFT_ID, 0);
}
#[inline]
pub fn add_VIRTUAL_CHANNEL_ID(&mut self, VIRTUAL_CHANNEL_ID: u8) {
self.fbb_.push_slot::<u8>(AOF::VT_VIRTUAL_CHANNEL_ID, VIRTUAL_CHANNEL_ID, 0);
}
#[inline]
pub fn add_VIRTUAL_FRAME_COUNT(&mut self, VIRTUAL_FRAME_COUNT: u32) {
self.fbb_.push_slot::<u32>(AOF::VT_VIRTUAL_FRAME_COUNT, VIRTUAL_FRAME_COUNT, 0);
}
#[inline]
pub fn add_REPLAY_FLAG(&mut self, REPLAY_FLAG: bool) {
self.fbb_.push_slot::<bool>(AOF::VT_REPLAY_FLAG, REPLAY_FLAG, false);
}
#[inline]
pub fn add_VC_FRAME_COUNT_USAGE(&mut self, VC_FRAME_COUNT_USAGE: bool) {
self.fbb_.push_slot::<bool>(AOF::VT_VC_FRAME_COUNT_USAGE, VC_FRAME_COUNT_USAGE, false);
}
#[inline]
pub fn add_VC_FRAME_COUNT_CYCLE(&mut self, VC_FRAME_COUNT_CYCLE: u8) {
self.fbb_.push_slot::<u8>(AOF::VT_VC_FRAME_COUNT_CYCLE, VC_FRAME_COUNT_CYCLE, 0);
}
#[inline]
pub fn add_INSERT_ZONE(&mut self, INSERT_ZONE: flatbuffers::WIPOffset<flatbuffers::Vector<'b , u8>>) {
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(AOF::VT_INSERT_ZONE, INSERT_ZONE);
}
#[inline]
pub fn add_DATA(&mut self, DATA: flatbuffers::WIPOffset<flatbuffers::Vector<'b , u8>>) {
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(AOF::VT_DATA, DATA);
}
#[inline]
pub fn add_OCF(&mut self, OCF: flatbuffers::WIPOffset<flatbuffers::Vector<'b , u8>>) {
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(AOF::VT_OCF, OCF);
}
#[inline]
pub fn add_FECF(&mut self, FECF: u16) {
self.fbb_.push_slot::<u16>(AOF::VT_FECF, FECF, 0);
}
#[inline]
pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a, A>) -> AOFBuilder<'a, 'b, A> {
let start = _fbb.start_table();
AOFBuilder {
fbb_: _fbb,
start_: start,
}
}
#[inline]
pub fn finish(self) -> flatbuffers::WIPOffset<AOF<'a>> {
let o = self.fbb_.end_table(self.start_);
flatbuffers::WIPOffset::new(o.value())
}
}
impl core::fmt::Debug for AOF<'_> {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
let mut ds = f.debug_struct("AOF");
ds.field("VERSION", &self.VERSION());
ds.field("SPACECRAFT_ID", &self.SPACECRAFT_ID());
ds.field("VIRTUAL_CHANNEL_ID", &self.VIRTUAL_CHANNEL_ID());
ds.field("VIRTUAL_FRAME_COUNT", &self.VIRTUAL_FRAME_COUNT());
ds.field("REPLAY_FLAG", &self.REPLAY_FLAG());
ds.field("VC_FRAME_COUNT_USAGE", &self.VC_FRAME_COUNT_USAGE());
ds.field("VC_FRAME_COUNT_CYCLE", &self.VC_FRAME_COUNT_CYCLE());
ds.field("INSERT_ZONE", &self.INSERT_ZONE());
ds.field("DATA", &self.DATA());
ds.field("OCF", &self.OCF());
ds.field("FECF", &self.FECF());
ds.finish()
}
}
#[non_exhaustive]
#[derive(Debug, Clone, PartialEq)]
pub struct AOFT {
pub VERSION: u8,
pub SPACECRAFT_ID: u16,
pub VIRTUAL_CHANNEL_ID: u8,
pub VIRTUAL_FRAME_COUNT: u32,
pub REPLAY_FLAG: bool,
pub VC_FRAME_COUNT_USAGE: bool,
pub VC_FRAME_COUNT_CYCLE: u8,
pub INSERT_ZONE: Option<Vec<u8>>,
pub DATA: Option<Vec<u8>>,
pub OCF: Option<Vec<u8>>,
pub FECF: u16,
}
impl Default for AOFT {
fn default() -> Self {
Self {
VERSION: 0,
SPACECRAFT_ID: 0,
VIRTUAL_CHANNEL_ID: 0,
VIRTUAL_FRAME_COUNT: 0,
REPLAY_FLAG: false,
VC_FRAME_COUNT_USAGE: false,
VC_FRAME_COUNT_CYCLE: 0,
INSERT_ZONE: None,
DATA: None,
OCF: None,
FECF: 0,
}
}
}
impl AOFT {
pub fn pack<'b, A: flatbuffers::Allocator + 'b>(
&self,
_fbb: &mut flatbuffers::FlatBufferBuilder<'b, A>
) -> flatbuffers::WIPOffset<AOF<'b>> {
let VERSION = self.VERSION;
let SPACECRAFT_ID = self.SPACECRAFT_ID;
let VIRTUAL_CHANNEL_ID = self.VIRTUAL_CHANNEL_ID;
let VIRTUAL_FRAME_COUNT = self.VIRTUAL_FRAME_COUNT;
let REPLAY_FLAG = self.REPLAY_FLAG;
let VC_FRAME_COUNT_USAGE = self.VC_FRAME_COUNT_USAGE;
let VC_FRAME_COUNT_CYCLE = self.VC_FRAME_COUNT_CYCLE;
let INSERT_ZONE = self.INSERT_ZONE.as_ref().map(|x|{
_fbb.create_vector(x)
});
let DATA = self.DATA.as_ref().map(|x|{
_fbb.create_vector(x)
});
let OCF = self.OCF.as_ref().map(|x|{
_fbb.create_vector(x)
});
let FECF = self.FECF;
AOF::create(_fbb, &AOFArgs{
VERSION,
SPACECRAFT_ID,
VIRTUAL_CHANNEL_ID,
VIRTUAL_FRAME_COUNT,
REPLAY_FLAG,
VC_FRAME_COUNT_USAGE,
VC_FRAME_COUNT_CYCLE,
INSERT_ZONE,
DATA,
OCF,
FECF,
})
}
}
#[inline]
pub fn root_as_AOF(buf: &[u8]) -> Result<AOF, flatbuffers::InvalidFlatbuffer> {
flatbuffers::root::<AOF>(buf)
}
#[inline]
pub fn size_prefixed_root_as_AOF(buf: &[u8]) -> Result<AOF, flatbuffers::InvalidFlatbuffer> {
flatbuffers::size_prefixed_root::<AOF>(buf)
}
#[inline]
pub fn root_as_AOF_with_opts<'b, 'o>(
opts: &'o flatbuffers::VerifierOptions,
buf: &'b [u8],
) -> Result<AOF<'b>, flatbuffers::InvalidFlatbuffer> {
flatbuffers::root_with_opts::<AOF<'b>>(opts, buf)
}
#[inline]
pub fn size_prefixed_root_as_AOF_with_opts<'b, 'o>(
opts: &'o flatbuffers::VerifierOptions,
buf: &'b [u8],
) -> Result<AOF<'b>, flatbuffers::InvalidFlatbuffer> {
flatbuffers::size_prefixed_root_with_opts::<AOF<'b>>(opts, buf)
}
#[inline]
pub unsafe fn root_as_AOF_unchecked(buf: &[u8]) -> AOF {
flatbuffers::root_unchecked::<AOF>(buf)
}
#[inline]
pub unsafe fn size_prefixed_root_as_AOF_unchecked(buf: &[u8]) -> AOF {
flatbuffers::size_prefixed_root_unchecked::<AOF>(buf)
}
pub const AOF_IDENTIFIER: &str = "$AOF";
#[inline]
pub fn AOF_buffer_has_identifier(buf: &[u8]) -> bool {
flatbuffers::buffer_has_identifier(buf, AOF_IDENTIFIER, false)
}
#[inline]
pub fn AOF_size_prefixed_buffer_has_identifier(buf: &[u8]) -> bool {
flatbuffers::buffer_has_identifier(buf, AOF_IDENTIFIER, true)
}
#[inline]
pub fn finish_AOF_buffer<'a, 'b, A: flatbuffers::Allocator + 'a>(
fbb: &'b mut flatbuffers::FlatBufferBuilder<'a, A>,
root: flatbuffers::WIPOffset<AOF<'a>>) {
fbb.finish(root, Some(AOF_IDENTIFIER));
}
#[inline]
pub fn finish_size_prefixed_AOF_buffer<'a, 'b, A: flatbuffers::Allocator + 'a>(fbb: &'b mut flatbuffers::FlatBufferBuilder<'a, A>, root: flatbuffers::WIPOffset<AOF<'a>>) {
fbb.finish_size_prefixed(root, Some(AOF_IDENTIFIER));
}