use core::mem;
use core::cmp::Ordering;
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_STVREFERENCE_FRAME: i8 = 0;
#[deprecated(since = "2.0.0", note = "Use associated constants instead. This will no longer be generated in 2021.")]
pub const ENUM_MAX_STVREFERENCE_FRAME: i8 = 6;
#[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_STVREFERENCE_FRAME: [STVReferenceFrame; 7] = [
STVReferenceFrame::GCRF,
STVReferenceFrame::ITRF,
STVReferenceFrame::EME2000,
STVReferenceFrame::TEME,
STVReferenceFrame::ICRF,
STVReferenceFrame::MOON_CI,
STVReferenceFrame::MARS_CI,
];
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
#[repr(transparent)]
pub struct STVReferenceFrame(pub i8);
#[allow(non_upper_case_globals)]
impl STVReferenceFrame {
pub const GCRF: Self = Self(0);
pub const ITRF: Self = Self(1);
pub const EME2000: Self = Self(2);
pub const TEME: Self = Self(3);
pub const ICRF: Self = Self(4);
pub const MOON_CI: Self = Self(5);
pub const MARS_CI: Self = Self(6);
pub const ENUM_MIN: i8 = 0;
pub const ENUM_MAX: i8 = 6;
pub const ENUM_VALUES: &'static [Self] = &[
Self::GCRF,
Self::ITRF,
Self::EME2000,
Self::TEME,
Self::ICRF,
Self::MOON_CI,
Self::MARS_CI,
];
pub fn variant_name(self) -> Option<&'static str> {
match self {
Self::GCRF => Some("GCRF"),
Self::ITRF => Some("ITRF"),
Self::EME2000 => Some("EME2000"),
Self::TEME => Some("TEME"),
Self::ICRF => Some("ICRF"),
Self::MOON_CI => Some("MOON_CI"),
Self::MARS_CI => Some("MARS_CI"),
_ => None,
}
}
}
impl core::fmt::Debug for STVReferenceFrame {
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 STVReferenceFrame {
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 STVReferenceFrame {
type Output = STVReferenceFrame;
#[inline]
unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
flatbuffers::emplace_scalar::<i8>(dst, self.0);
}
}
impl flatbuffers::EndianScalar for STVReferenceFrame {
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 STVReferenceFrame {
#[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 STVReferenceFrame {}
pub enum STVOffset {}
#[derive(Copy, Clone, PartialEq)]
pub struct STV<'a> {
pub _tab: flatbuffers::Table<'a>,
}
impl<'a> flatbuffers::Follow<'a> for STV<'a> {
type Inner = STV<'a>;
#[inline]
unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
Self { _tab: flatbuffers::Table::new(buf, loc) }
}
}
impl<'a> STV<'a> {
pub const VT_EPOCH: flatbuffers::VOffsetT = 4;
pub const VT_POS_X: flatbuffers::VOffsetT = 6;
pub const VT_POS_Y: flatbuffers::VOffsetT = 8;
pub const VT_POS_Z: flatbuffers::VOffsetT = 10;
pub const VT_VEL_X: flatbuffers::VOffsetT = 12;
pub const VT_VEL_Y: flatbuffers::VOffsetT = 14;
pub const VT_VEL_Z: flatbuffers::VOffsetT = 16;
pub const VT_REF_FRAME: flatbuffers::VOffsetT = 18;
pub const VT_FLAGS: flatbuffers::VOffsetT = 20;
pub const VT_RESERVED: flatbuffers::VOffsetT = 22;
#[inline]
pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
STV { _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 STVArgs<'args>
) -> flatbuffers::WIPOffset<STV<'bldr>> {
let mut builder = STVBuilder::new(_fbb);
builder.add_VEL_Z(args.VEL_Z);
builder.add_VEL_Y(args.VEL_Y);
builder.add_VEL_X(args.VEL_X);
builder.add_POS_Z(args.POS_Z);
builder.add_POS_Y(args.POS_Y);
builder.add_POS_X(args.POS_X);
builder.add_EPOCH(args.EPOCH);
if let Some(x) = args.RESERVED { builder.add_RESERVED(x); }
builder.add_FLAGS(args.FLAGS);
builder.add_REF_FRAME(args.REF_FRAME);
builder.finish()
}
pub fn unpack(&self) -> STVT {
let EPOCH = self.EPOCH();
let POS_X = self.POS_X();
let POS_Y = self.POS_Y();
let POS_Z = self.POS_Z();
let VEL_X = self.VEL_X();
let VEL_Y = self.VEL_Y();
let VEL_Z = self.VEL_Z();
let REF_FRAME = self.REF_FRAME();
let FLAGS = self.FLAGS();
let RESERVED = self.RESERVED().map(|x| {
x.into_iter().collect()
});
STVT {
EPOCH,
POS_X,
POS_Y,
POS_Z,
VEL_X,
VEL_Y,
VEL_Z,
REF_FRAME,
FLAGS,
RESERVED,
}
}
#[inline]
pub fn EPOCH(&self) -> f64 {
unsafe { self._tab.get::<f64>(STV::VT_EPOCH, Some(0.0)).unwrap()}
}
#[inline]
pub fn POS_X(&self) -> f64 {
unsafe { self._tab.get::<f64>(STV::VT_POS_X, Some(0.0)).unwrap()}
}
#[inline]
pub fn POS_Y(&self) -> f64 {
unsafe { self._tab.get::<f64>(STV::VT_POS_Y, Some(0.0)).unwrap()}
}
#[inline]
pub fn POS_Z(&self) -> f64 {
unsafe { self._tab.get::<f64>(STV::VT_POS_Z, Some(0.0)).unwrap()}
}
#[inline]
pub fn VEL_X(&self) -> f64 {
unsafe { self._tab.get::<f64>(STV::VT_VEL_X, Some(0.0)).unwrap()}
}
#[inline]
pub fn VEL_Y(&self) -> f64 {
unsafe { self._tab.get::<f64>(STV::VT_VEL_Y, Some(0.0)).unwrap()}
}
#[inline]
pub fn VEL_Z(&self) -> f64 {
unsafe { self._tab.get::<f64>(STV::VT_VEL_Z, Some(0.0)).unwrap()}
}
#[inline]
pub fn REF_FRAME(&self) -> u8 {
unsafe { self._tab.get::<u8>(STV::VT_REF_FRAME, Some(0)).unwrap()}
}
#[inline]
pub fn FLAGS(&self) -> u8 {
unsafe { self._tab.get::<u8>(STV::VT_FLAGS, Some(0)).unwrap()}
}
#[inline]
pub fn RESERVED(&self) -> Option<flatbuffers::Vector<'a, u8>> {
unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, u8>>>(STV::VT_RESERVED, None)}
}
}
impl flatbuffers::Verifiable for STV<'_> {
#[inline]
fn run_verifier(
v: &mut flatbuffers::Verifier, pos: usize
) -> Result<(), flatbuffers::InvalidFlatbuffer> {
use self::flatbuffers::Verifiable;
v.visit_table(pos)?
.visit_field::<f64>("EPOCH", Self::VT_EPOCH, false)?
.visit_field::<f64>("POS_X", Self::VT_POS_X, false)?
.visit_field::<f64>("POS_Y", Self::VT_POS_Y, false)?
.visit_field::<f64>("POS_Z", Self::VT_POS_Z, false)?
.visit_field::<f64>("VEL_X", Self::VT_VEL_X, false)?
.visit_field::<f64>("VEL_Y", Self::VT_VEL_Y, false)?
.visit_field::<f64>("VEL_Z", Self::VT_VEL_Z, false)?
.visit_field::<u8>("REF_FRAME", Self::VT_REF_FRAME, false)?
.visit_field::<u8>("FLAGS", Self::VT_FLAGS, false)?
.visit_field::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'_, u8>>>("RESERVED", Self::VT_RESERVED, false)?
.finish();
Ok(())
}
}
pub struct STVArgs<'a> {
pub EPOCH: f64,
pub POS_X: f64,
pub POS_Y: f64,
pub POS_Z: f64,
pub VEL_X: f64,
pub VEL_Y: f64,
pub VEL_Z: f64,
pub REF_FRAME: u8,
pub FLAGS: u8,
pub RESERVED: Option<flatbuffers::WIPOffset<flatbuffers::Vector<'a, u8>>>,
}
impl<'a> Default for STVArgs<'a> {
#[inline]
fn default() -> Self {
STVArgs {
EPOCH: 0.0,
POS_X: 0.0,
POS_Y: 0.0,
POS_Z: 0.0,
VEL_X: 0.0,
VEL_Y: 0.0,
VEL_Z: 0.0,
REF_FRAME: 0,
FLAGS: 0,
RESERVED: None,
}
}
}
pub struct STVBuilder<'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> STVBuilder<'a, 'b, A> {
#[inline]
pub fn add_EPOCH(&mut self, EPOCH: f64) {
self.fbb_.push_slot::<f64>(STV::VT_EPOCH, EPOCH, 0.0);
}
#[inline]
pub fn add_POS_X(&mut self, POS_X: f64) {
self.fbb_.push_slot::<f64>(STV::VT_POS_X, POS_X, 0.0);
}
#[inline]
pub fn add_POS_Y(&mut self, POS_Y: f64) {
self.fbb_.push_slot::<f64>(STV::VT_POS_Y, POS_Y, 0.0);
}
#[inline]
pub fn add_POS_Z(&mut self, POS_Z: f64) {
self.fbb_.push_slot::<f64>(STV::VT_POS_Z, POS_Z, 0.0);
}
#[inline]
pub fn add_VEL_X(&mut self, VEL_X: f64) {
self.fbb_.push_slot::<f64>(STV::VT_VEL_X, VEL_X, 0.0);
}
#[inline]
pub fn add_VEL_Y(&mut self, VEL_Y: f64) {
self.fbb_.push_slot::<f64>(STV::VT_VEL_Y, VEL_Y, 0.0);
}
#[inline]
pub fn add_VEL_Z(&mut self, VEL_Z: f64) {
self.fbb_.push_slot::<f64>(STV::VT_VEL_Z, VEL_Z, 0.0);
}
#[inline]
pub fn add_REF_FRAME(&mut self, REF_FRAME: u8) {
self.fbb_.push_slot::<u8>(STV::VT_REF_FRAME, REF_FRAME, 0);
}
#[inline]
pub fn add_FLAGS(&mut self, FLAGS: u8) {
self.fbb_.push_slot::<u8>(STV::VT_FLAGS, FLAGS, 0);
}
#[inline]
pub fn add_RESERVED(&mut self, RESERVED: flatbuffers::WIPOffset<flatbuffers::Vector<'b , u8>>) {
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(STV::VT_RESERVED, RESERVED);
}
#[inline]
pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a, A>) -> STVBuilder<'a, 'b, A> {
let start = _fbb.start_table();
STVBuilder {
fbb_: _fbb,
start_: start,
}
}
#[inline]
pub fn finish(self) -> flatbuffers::WIPOffset<STV<'a>> {
let o = self.fbb_.end_table(self.start_);
flatbuffers::WIPOffset::new(o.value())
}
}
impl core::fmt::Debug for STV<'_> {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
let mut ds = f.debug_struct("STV");
ds.field("EPOCH", &self.EPOCH());
ds.field("POS_X", &self.POS_X());
ds.field("POS_Y", &self.POS_Y());
ds.field("POS_Z", &self.POS_Z());
ds.field("VEL_X", &self.VEL_X());
ds.field("VEL_Y", &self.VEL_Y());
ds.field("VEL_Z", &self.VEL_Z());
ds.field("REF_FRAME", &self.REF_FRAME());
ds.field("FLAGS", &self.FLAGS());
ds.field("RESERVED", &self.RESERVED());
ds.finish()
}
}
#[non_exhaustive]
#[derive(Debug, Clone, PartialEq)]
pub struct STVT {
pub EPOCH: f64,
pub POS_X: f64,
pub POS_Y: f64,
pub POS_Z: f64,
pub VEL_X: f64,
pub VEL_Y: f64,
pub VEL_Z: f64,
pub REF_FRAME: u8,
pub FLAGS: u8,
pub RESERVED: Option<Vec<u8>>,
}
impl Default for STVT {
fn default() -> Self {
Self {
EPOCH: 0.0,
POS_X: 0.0,
POS_Y: 0.0,
POS_Z: 0.0,
VEL_X: 0.0,
VEL_Y: 0.0,
VEL_Z: 0.0,
REF_FRAME: 0,
FLAGS: 0,
RESERVED: None,
}
}
}
impl STVT {
pub fn pack<'b, A: flatbuffers::Allocator + 'b>(
&self,
_fbb: &mut flatbuffers::FlatBufferBuilder<'b, A>
) -> flatbuffers::WIPOffset<STV<'b>> {
let EPOCH = self.EPOCH;
let POS_X = self.POS_X;
let POS_Y = self.POS_Y;
let POS_Z = self.POS_Z;
let VEL_X = self.VEL_X;
let VEL_Y = self.VEL_Y;
let VEL_Z = self.VEL_Z;
let REF_FRAME = self.REF_FRAME;
let FLAGS = self.FLAGS;
let RESERVED = self.RESERVED.as_ref().map(|x|{
_fbb.create_vector(x)
});
STV::create(_fbb, &STVArgs{
EPOCH,
POS_X,
POS_Y,
POS_Z,
VEL_X,
VEL_Y,
VEL_Z,
REF_FRAME,
FLAGS,
RESERVED,
})
}
}
#[inline]
pub fn root_as_STV(buf: &[u8]) -> Result<STV, flatbuffers::InvalidFlatbuffer> {
flatbuffers::root::<STV>(buf)
}
#[inline]
pub fn size_prefixed_root_as_STV(buf: &[u8]) -> Result<STV, flatbuffers::InvalidFlatbuffer> {
flatbuffers::size_prefixed_root::<STV>(buf)
}
#[inline]
pub fn root_as_STV_with_opts<'b, 'o>(
opts: &'o flatbuffers::VerifierOptions,
buf: &'b [u8],
) -> Result<STV<'b>, flatbuffers::InvalidFlatbuffer> {
flatbuffers::root_with_opts::<STV<'b>>(opts, buf)
}
#[inline]
pub fn size_prefixed_root_as_STV_with_opts<'b, 'o>(
opts: &'o flatbuffers::VerifierOptions,
buf: &'b [u8],
) -> Result<STV<'b>, flatbuffers::InvalidFlatbuffer> {
flatbuffers::size_prefixed_root_with_opts::<STV<'b>>(opts, buf)
}
#[inline]
pub unsafe fn root_as_STV_unchecked(buf: &[u8]) -> STV {
flatbuffers::root_unchecked::<STV>(buf)
}
#[inline]
pub unsafe fn size_prefixed_root_as_STV_unchecked(buf: &[u8]) -> STV {
flatbuffers::size_prefixed_root_unchecked::<STV>(buf)
}
pub const STV_IDENTIFIER: &str = "$STV";
#[inline]
pub fn STV_buffer_has_identifier(buf: &[u8]) -> bool {
flatbuffers::buffer_has_identifier(buf, STV_IDENTIFIER, false)
}
#[inline]
pub fn STV_size_prefixed_buffer_has_identifier(buf: &[u8]) -> bool {
flatbuffers::buffer_has_identifier(buf, STV_IDENTIFIER, true)
}
#[inline]
pub fn finish_STV_buffer<'a, 'b, A: flatbuffers::Allocator + 'a>(
fbb: &'b mut flatbuffers::FlatBufferBuilder<'a, A>,
root: flatbuffers::WIPOffset<STV<'a>>) {
fbb.finish(root, Some(STV_IDENTIFIER));
}
#[inline]
pub fn finish_size_prefixed_STV_buffer<'a, 'b, A: flatbuffers::Allocator + 'a>(fbb: &'b mut flatbuffers::FlatBufferBuilder<'a, A>, root: flatbuffers::WIPOffset<STV<'a>>) {
fbb.finish_size_prefixed(root, Some(STV_IDENTIFIER));
}