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_TIME_SCALE: i8 = 0;
#[deprecated(since = "2.0.0", note = "Use associated constants instead. This will no longer be generated in 2021.")]
pub const ENUM_MAX_TIME_SCALE: i8 = 13;
#[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_TIME_SCALE: [TimeScale; 14] = [
TimeScale::UTC,
TimeScale::TAI,
TimeScale::TT,
TimeScale::TDB,
TimeScale::TCG,
TimeScale::TCB,
TimeScale::GPS,
TimeScale::GLONASS,
TimeScale::GALILEO,
TimeScale::BEIDOU,
TimeScale::UT1,
TimeScale::LOCAL_MEAN_SOLAR,
TimeScale::LOCAL_APPARENT_SOLAR,
TimeScale::SIDEREAL,
];
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
#[repr(transparent)]
pub struct TimeScale(pub i8);
#[allow(non_upper_case_globals)]
impl TimeScale {
pub const UTC: Self = Self(0);
pub const TAI: Self = Self(1);
pub const TT: Self = Self(2);
pub const TDB: Self = Self(3);
pub const TCG: Self = Self(4);
pub const TCB: Self = Self(5);
pub const GPS: Self = Self(6);
pub const GLONASS: Self = Self(7);
pub const GALILEO: Self = Self(8);
pub const BEIDOU: Self = Self(9);
pub const UT1: Self = Self(10);
pub const LOCAL_MEAN_SOLAR: Self = Self(11);
pub const LOCAL_APPARENT_SOLAR: Self = Self(12);
pub const SIDEREAL: Self = Self(13);
pub const ENUM_MIN: i8 = 0;
pub const ENUM_MAX: i8 = 13;
pub const ENUM_VALUES: &'static [Self] = &[
Self::UTC,
Self::TAI,
Self::TT,
Self::TDB,
Self::TCG,
Self::TCB,
Self::GPS,
Self::GLONASS,
Self::GALILEO,
Self::BEIDOU,
Self::UT1,
Self::LOCAL_MEAN_SOLAR,
Self::LOCAL_APPARENT_SOLAR,
Self::SIDEREAL,
];
pub fn variant_name(self) -> Option<&'static str> {
match self {
Self::UTC => Some("UTC"),
Self::TAI => Some("TAI"),
Self::TT => Some("TT"),
Self::TDB => Some("TDB"),
Self::TCG => Some("TCG"),
Self::TCB => Some("TCB"),
Self::GPS => Some("GPS"),
Self::GLONASS => Some("GLONASS"),
Self::GALILEO => Some("GALILEO"),
Self::BEIDOU => Some("BEIDOU"),
Self::UT1 => Some("UT1"),
Self::LOCAL_MEAN_SOLAR => Some("LOCAL_MEAN_SOLAR"),
Self::LOCAL_APPARENT_SOLAR => Some("LOCAL_APPARENT_SOLAR"),
Self::SIDEREAL => Some("SIDEREAL"),
_ => None,
}
}
}
impl core::fmt::Debug for TimeScale {
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 TimeScale {
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 TimeScale {
type Output = TimeScale;
#[inline]
unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
flatbuffers::emplace_scalar::<i8>(dst, self.0);
}
}
impl flatbuffers::EndianScalar for TimeScale {
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 TimeScale {
#[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 TimeScale {}
#[deprecated(since = "2.0.0", note = "Use associated constants instead. This will no longer be generated in 2021.")]
pub const ENUM_MIN_DATE_FORMAT: i8 = 0;
#[deprecated(since = "2.0.0", note = "Use associated constants instead. This will no longer be generated in 2021.")]
pub const ENUM_MAX_DATE_FORMAT: 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_DATE_FORMAT: [DateFormat; 7] = [
DateFormat::ISO8601,
DateFormat::JULIAN_DATE,
DateFormat::MODIFIED_JULIAN_DATE,
DateFormat::GPS_WEEK_SOW,
DateFormat::YEAR_DOY,
DateFormat::UNIX_EPOCH,
DateFormat::MISSION_ELAPSED,
];
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
#[repr(transparent)]
pub struct DateFormat(pub i8);
#[allow(non_upper_case_globals)]
impl DateFormat {
pub const ISO8601: Self = Self(0);
pub const JULIAN_DATE: Self = Self(1);
pub const MODIFIED_JULIAN_DATE: Self = Self(2);
pub const GPS_WEEK_SOW: Self = Self(3);
pub const YEAR_DOY: Self = Self(4);
pub const UNIX_EPOCH: Self = Self(5);
pub const MISSION_ELAPSED: Self = Self(6);
pub const ENUM_MIN: i8 = 0;
pub const ENUM_MAX: i8 = 6;
pub const ENUM_VALUES: &'static [Self] = &[
Self::ISO8601,
Self::JULIAN_DATE,
Self::MODIFIED_JULIAN_DATE,
Self::GPS_WEEK_SOW,
Self::YEAR_DOY,
Self::UNIX_EPOCH,
Self::MISSION_ELAPSED,
];
pub fn variant_name(self) -> Option<&'static str> {
match self {
Self::ISO8601 => Some("ISO8601"),
Self::JULIAN_DATE => Some("JULIAN_DATE"),
Self::MODIFIED_JULIAN_DATE => Some("MODIFIED_JULIAN_DATE"),
Self::GPS_WEEK_SOW => Some("GPS_WEEK_SOW"),
Self::YEAR_DOY => Some("YEAR_DOY"),
Self::UNIX_EPOCH => Some("UNIX_EPOCH"),
Self::MISSION_ELAPSED => Some("MISSION_ELAPSED"),
_ => None,
}
}
}
impl core::fmt::Debug for DateFormat {
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 DateFormat {
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 DateFormat {
type Output = DateFormat;
#[inline]
unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
flatbuffers::emplace_scalar::<i8>(dst, self.0);
}
}
impl flatbuffers::EndianScalar for DateFormat {
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 DateFormat {
#[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 DateFormat {}
#[deprecated(since = "2.0.0", note = "Use associated constants instead. This will no longer be generated in 2021.")]
pub const ENUM_MIN_CLOCK_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_CLOCK_TYPE: i8 = 5;
#[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_CLOCK_TYPE: [ClockType; 6] = [
ClockType::CESIUM,
ClockType::RUBIDIUM,
ClockType::QUARTZ_TCXO,
ClockType::QUARTZ_OCXO,
ClockType::HYDROGEN_MASER,
ClockType::GPS_DISCIPLINED,
];
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
#[repr(transparent)]
pub struct ClockType(pub i8);
#[allow(non_upper_case_globals)]
impl ClockType {
pub const CESIUM: Self = Self(0);
pub const RUBIDIUM: Self = Self(1);
pub const QUARTZ_TCXO: Self = Self(2);
pub const QUARTZ_OCXO: Self = Self(3);
pub const HYDROGEN_MASER: Self = Self(4);
pub const GPS_DISCIPLINED: Self = Self(5);
pub const ENUM_MIN: i8 = 0;
pub const ENUM_MAX: i8 = 5;
pub const ENUM_VALUES: &'static [Self] = &[
Self::CESIUM,
Self::RUBIDIUM,
Self::QUARTZ_TCXO,
Self::QUARTZ_OCXO,
Self::HYDROGEN_MASER,
Self::GPS_DISCIPLINED,
];
pub fn variant_name(self) -> Option<&'static str> {
match self {
Self::CESIUM => Some("CESIUM"),
Self::RUBIDIUM => Some("RUBIDIUM"),
Self::QUARTZ_TCXO => Some("QUARTZ_TCXO"),
Self::QUARTZ_OCXO => Some("QUARTZ_OCXO"),
Self::HYDROGEN_MASER => Some("HYDROGEN_MASER"),
Self::GPS_DISCIPLINED => Some("GPS_DISCIPLINED"),
_ => None,
}
}
}
impl core::fmt::Debug for ClockType {
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 ClockType {
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 ClockType {
type Output = ClockType;
#[inline]
unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
flatbuffers::emplace_scalar::<i8>(dst, self.0);
}
}
impl flatbuffers::EndianScalar for ClockType {
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 ClockType {
#[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 ClockType {}
pub enum TMEOffset {}
#[derive(Copy, Clone, PartialEq)]
pub struct TME<'a> {
pub _tab: flatbuffers::Table<'a>,
}
impl<'a> flatbuffers::Follow<'a> for TME<'a> {
type Inner = TME<'a>;
#[inline]
unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
Self { _tab: flatbuffers::Table::new(buf, loc) }
}
}
impl<'a> TME<'a> {
pub const VT_COMMAND: flatbuffers::VOffsetT = 4;
pub const VT_CONVERSION_REQUEST: flatbuffers::VOffsetT = 6;
pub const VT_LEAP_SECOND_QUERY: flatbuffers::VOffsetT = 8;
pub const VT_EOP_QUERY: flatbuffers::VOffsetT = 10;
pub const VT_SIDEREAL_QUERY: flatbuffers::VOffsetT = 12;
pub const VT_INTERVAL_REQUEST: flatbuffers::VOffsetT = 14;
pub const VT_SOLAR_POSITION_QUERY: flatbuffers::VOffsetT = 16;
pub const VT_LUNAR_POSITION_QUERY: flatbuffers::VOffsetT = 18;
pub const VT_SUNRISE_SUNSET_QUERY: flatbuffers::VOffsetT = 20;
pub const VT_CLOCK_PROPAGATION: flatbuffers::VOffsetT = 22;
#[inline]
pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
TME { _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 TMEArgs<'args>
) -> flatbuffers::WIPOffset<TME<'bldr>> {
let mut builder = TMEBuilder::new(_fbb);
if let Some(x) = args.CLOCK_PROPAGATION { builder.add_CLOCK_PROPAGATION(x); }
if let Some(x) = args.SUNRISE_SUNSET_QUERY { builder.add_SUNRISE_SUNSET_QUERY(x); }
if let Some(x) = args.LUNAR_POSITION_QUERY { builder.add_LUNAR_POSITION_QUERY(x); }
if let Some(x) = args.SOLAR_POSITION_QUERY { builder.add_SOLAR_POSITION_QUERY(x); }
if let Some(x) = args.INTERVAL_REQUEST { builder.add_INTERVAL_REQUEST(x); }
if let Some(x) = args.SIDEREAL_QUERY { builder.add_SIDEREAL_QUERY(x); }
if let Some(x) = args.EOP_QUERY { builder.add_EOP_QUERY(x); }
if let Some(x) = args.LEAP_SECOND_QUERY { builder.add_LEAP_SECOND_QUERY(x); }
if let Some(x) = args.CONVERSION_REQUEST { builder.add_CONVERSION_REQUEST(x); }
if let Some(x) = args.COMMAND { builder.add_COMMAND(x); }
builder.finish()
}
pub fn unpack(&self) -> TMET {
let COMMAND = self.COMMAND().map(|x| {
x.to_string()
});
let CONVERSION_REQUEST = self.CONVERSION_REQUEST().map(|x| {
x.to_string()
});
let LEAP_SECOND_QUERY = self.LEAP_SECOND_QUERY().map(|x| {
x.to_string()
});
let EOP_QUERY = self.EOP_QUERY().map(|x| {
x.to_string()
});
let SIDEREAL_QUERY = self.SIDEREAL_QUERY().map(|x| {
x.to_string()
});
let INTERVAL_REQUEST = self.INTERVAL_REQUEST().map(|x| {
x.to_string()
});
let SOLAR_POSITION_QUERY = self.SOLAR_POSITION_QUERY().map(|x| {
x.to_string()
});
let LUNAR_POSITION_QUERY = self.LUNAR_POSITION_QUERY().map(|x| {
x.to_string()
});
let SUNRISE_SUNSET_QUERY = self.SUNRISE_SUNSET_QUERY().map(|x| {
x.into_iter().collect()
});
let CLOCK_PROPAGATION = self.CLOCK_PROPAGATION().map(|x| {
x.to_string()
});
TMET {
COMMAND,
CONVERSION_REQUEST,
LEAP_SECOND_QUERY,
EOP_QUERY,
SIDEREAL_QUERY,
INTERVAL_REQUEST,
SOLAR_POSITION_QUERY,
LUNAR_POSITION_QUERY,
SUNRISE_SUNSET_QUERY,
CLOCK_PROPAGATION,
}
}
#[inline]
pub fn COMMAND(&self) -> Option<&'a str> {
unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(TME::VT_COMMAND, None)}
}
#[inline]
pub fn CONVERSION_REQUEST(&self) -> Option<&'a str> {
unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(TME::VT_CONVERSION_REQUEST, None)}
}
#[inline]
pub fn LEAP_SECOND_QUERY(&self) -> Option<&'a str> {
unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(TME::VT_LEAP_SECOND_QUERY, None)}
}
#[inline]
pub fn EOP_QUERY(&self) -> Option<&'a str> {
unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(TME::VT_EOP_QUERY, None)}
}
#[inline]
pub fn SIDEREAL_QUERY(&self) -> Option<&'a str> {
unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(TME::VT_SIDEREAL_QUERY, None)}
}
#[inline]
pub fn INTERVAL_REQUEST(&self) -> Option<&'a str> {
unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(TME::VT_INTERVAL_REQUEST, None)}
}
#[inline]
pub fn SOLAR_POSITION_QUERY(&self) -> Option<&'a str> {
unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(TME::VT_SOLAR_POSITION_QUERY, None)}
}
#[inline]
pub fn LUNAR_POSITION_QUERY(&self) -> Option<&'a str> {
unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(TME::VT_LUNAR_POSITION_QUERY, None)}
}
#[inline]
pub fn SUNRISE_SUNSET_QUERY(&self) -> Option<flatbuffers::Vector<'a, f64>> {
unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, f64>>>(TME::VT_SUNRISE_SUNSET_QUERY, None)}
}
#[inline]
pub fn CLOCK_PROPAGATION(&self) -> Option<&'a str> {
unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<&str>>(TME::VT_CLOCK_PROPAGATION, None)}
}
}
impl flatbuffers::Verifiable for TME<'_> {
#[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>>("COMMAND", Self::VT_COMMAND, false)?
.visit_field::<flatbuffers::ForwardsUOffset<&str>>("CONVERSION_REQUEST", Self::VT_CONVERSION_REQUEST, false)?
.visit_field::<flatbuffers::ForwardsUOffset<&str>>("LEAP_SECOND_QUERY", Self::VT_LEAP_SECOND_QUERY, false)?
.visit_field::<flatbuffers::ForwardsUOffset<&str>>("EOP_QUERY", Self::VT_EOP_QUERY, false)?
.visit_field::<flatbuffers::ForwardsUOffset<&str>>("SIDEREAL_QUERY", Self::VT_SIDEREAL_QUERY, false)?
.visit_field::<flatbuffers::ForwardsUOffset<&str>>("INTERVAL_REQUEST", Self::VT_INTERVAL_REQUEST, false)?
.visit_field::<flatbuffers::ForwardsUOffset<&str>>("SOLAR_POSITION_QUERY", Self::VT_SOLAR_POSITION_QUERY, false)?
.visit_field::<flatbuffers::ForwardsUOffset<&str>>("LUNAR_POSITION_QUERY", Self::VT_LUNAR_POSITION_QUERY, false)?
.visit_field::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'_, f64>>>("SUNRISE_SUNSET_QUERY", Self::VT_SUNRISE_SUNSET_QUERY, false)?
.visit_field::<flatbuffers::ForwardsUOffset<&str>>("CLOCK_PROPAGATION", Self::VT_CLOCK_PROPAGATION, false)?
.finish();
Ok(())
}
}
pub struct TMEArgs<'a> {
pub COMMAND: Option<flatbuffers::WIPOffset<&'a str>>,
pub CONVERSION_REQUEST: Option<flatbuffers::WIPOffset<&'a str>>,
pub LEAP_SECOND_QUERY: Option<flatbuffers::WIPOffset<&'a str>>,
pub EOP_QUERY: Option<flatbuffers::WIPOffset<&'a str>>,
pub SIDEREAL_QUERY: Option<flatbuffers::WIPOffset<&'a str>>,
pub INTERVAL_REQUEST: Option<flatbuffers::WIPOffset<&'a str>>,
pub SOLAR_POSITION_QUERY: Option<flatbuffers::WIPOffset<&'a str>>,
pub LUNAR_POSITION_QUERY: Option<flatbuffers::WIPOffset<&'a str>>,
pub SUNRISE_SUNSET_QUERY: Option<flatbuffers::WIPOffset<flatbuffers::Vector<'a, f64>>>,
pub CLOCK_PROPAGATION: Option<flatbuffers::WIPOffset<&'a str>>,
}
impl<'a> Default for TMEArgs<'a> {
#[inline]
fn default() -> Self {
TMEArgs {
COMMAND: None,
CONVERSION_REQUEST: None,
LEAP_SECOND_QUERY: None,
EOP_QUERY: None,
SIDEREAL_QUERY: None,
INTERVAL_REQUEST: None,
SOLAR_POSITION_QUERY: None,
LUNAR_POSITION_QUERY: None,
SUNRISE_SUNSET_QUERY: None,
CLOCK_PROPAGATION: None,
}
}
}
pub struct TMEBuilder<'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> TMEBuilder<'a, 'b, A> {
#[inline]
pub fn add_COMMAND(&mut self, COMMAND: flatbuffers::WIPOffset<&'b str>) {
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(TME::VT_COMMAND, COMMAND);
}
#[inline]
pub fn add_CONVERSION_REQUEST(&mut self, CONVERSION_REQUEST: flatbuffers::WIPOffset<&'b str>) {
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(TME::VT_CONVERSION_REQUEST, CONVERSION_REQUEST);
}
#[inline]
pub fn add_LEAP_SECOND_QUERY(&mut self, LEAP_SECOND_QUERY: flatbuffers::WIPOffset<&'b str>) {
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(TME::VT_LEAP_SECOND_QUERY, LEAP_SECOND_QUERY);
}
#[inline]
pub fn add_EOP_QUERY(&mut self, EOP_QUERY: flatbuffers::WIPOffset<&'b str>) {
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(TME::VT_EOP_QUERY, EOP_QUERY);
}
#[inline]
pub fn add_SIDEREAL_QUERY(&mut self, SIDEREAL_QUERY: flatbuffers::WIPOffset<&'b str>) {
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(TME::VT_SIDEREAL_QUERY, SIDEREAL_QUERY);
}
#[inline]
pub fn add_INTERVAL_REQUEST(&mut self, INTERVAL_REQUEST: flatbuffers::WIPOffset<&'b str>) {
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(TME::VT_INTERVAL_REQUEST, INTERVAL_REQUEST);
}
#[inline]
pub fn add_SOLAR_POSITION_QUERY(&mut self, SOLAR_POSITION_QUERY: flatbuffers::WIPOffset<&'b str>) {
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(TME::VT_SOLAR_POSITION_QUERY, SOLAR_POSITION_QUERY);
}
#[inline]
pub fn add_LUNAR_POSITION_QUERY(&mut self, LUNAR_POSITION_QUERY: flatbuffers::WIPOffset<&'b str>) {
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(TME::VT_LUNAR_POSITION_QUERY, LUNAR_POSITION_QUERY);
}
#[inline]
pub fn add_SUNRISE_SUNSET_QUERY(&mut self, SUNRISE_SUNSET_QUERY: flatbuffers::WIPOffset<flatbuffers::Vector<'b , f64>>) {
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(TME::VT_SUNRISE_SUNSET_QUERY, SUNRISE_SUNSET_QUERY);
}
#[inline]
pub fn add_CLOCK_PROPAGATION(&mut self, CLOCK_PROPAGATION: flatbuffers::WIPOffset<&'b str>) {
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(TME::VT_CLOCK_PROPAGATION, CLOCK_PROPAGATION);
}
#[inline]
pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a, A>) -> TMEBuilder<'a, 'b, A> {
let start = _fbb.start_table();
TMEBuilder {
fbb_: _fbb,
start_: start,
}
}
#[inline]
pub fn finish(self) -> flatbuffers::WIPOffset<TME<'a>> {
let o = self.fbb_.end_table(self.start_);
flatbuffers::WIPOffset::new(o.value())
}
}
impl core::fmt::Debug for TME<'_> {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
let mut ds = f.debug_struct("TME");
ds.field("COMMAND", &self.COMMAND());
ds.field("CONVERSION_REQUEST", &self.CONVERSION_REQUEST());
ds.field("LEAP_SECOND_QUERY", &self.LEAP_SECOND_QUERY());
ds.field("EOP_QUERY", &self.EOP_QUERY());
ds.field("SIDEREAL_QUERY", &self.SIDEREAL_QUERY());
ds.field("INTERVAL_REQUEST", &self.INTERVAL_REQUEST());
ds.field("SOLAR_POSITION_QUERY", &self.SOLAR_POSITION_QUERY());
ds.field("LUNAR_POSITION_QUERY", &self.LUNAR_POSITION_QUERY());
ds.field("SUNRISE_SUNSET_QUERY", &self.SUNRISE_SUNSET_QUERY());
ds.field("CLOCK_PROPAGATION", &self.CLOCK_PROPAGATION());
ds.finish()
}
}
#[non_exhaustive]
#[derive(Debug, Clone, PartialEq)]
pub struct TMET {
pub COMMAND: Option<String>,
pub CONVERSION_REQUEST: Option<String>,
pub LEAP_SECOND_QUERY: Option<String>,
pub EOP_QUERY: Option<String>,
pub SIDEREAL_QUERY: Option<String>,
pub INTERVAL_REQUEST: Option<String>,
pub SOLAR_POSITION_QUERY: Option<String>,
pub LUNAR_POSITION_QUERY: Option<String>,
pub SUNRISE_SUNSET_QUERY: Option<Vec<f64>>,
pub CLOCK_PROPAGATION: Option<String>,
}
impl Default for TMET {
fn default() -> Self {
Self {
COMMAND: None,
CONVERSION_REQUEST: None,
LEAP_SECOND_QUERY: None,
EOP_QUERY: None,
SIDEREAL_QUERY: None,
INTERVAL_REQUEST: None,
SOLAR_POSITION_QUERY: None,
LUNAR_POSITION_QUERY: None,
SUNRISE_SUNSET_QUERY: None,
CLOCK_PROPAGATION: None,
}
}
}
impl TMET {
pub fn pack<'b, A: flatbuffers::Allocator + 'b>(
&self,
_fbb: &mut flatbuffers::FlatBufferBuilder<'b, A>
) -> flatbuffers::WIPOffset<TME<'b>> {
let COMMAND = self.COMMAND.as_ref().map(|x|{
_fbb.create_string(x)
});
let CONVERSION_REQUEST = self.CONVERSION_REQUEST.as_ref().map(|x|{
_fbb.create_string(x)
});
let LEAP_SECOND_QUERY = self.LEAP_SECOND_QUERY.as_ref().map(|x|{
_fbb.create_string(x)
});
let EOP_QUERY = self.EOP_QUERY.as_ref().map(|x|{
_fbb.create_string(x)
});
let SIDEREAL_QUERY = self.SIDEREAL_QUERY.as_ref().map(|x|{
_fbb.create_string(x)
});
let INTERVAL_REQUEST = self.INTERVAL_REQUEST.as_ref().map(|x|{
_fbb.create_string(x)
});
let SOLAR_POSITION_QUERY = self.SOLAR_POSITION_QUERY.as_ref().map(|x|{
_fbb.create_string(x)
});
let LUNAR_POSITION_QUERY = self.LUNAR_POSITION_QUERY.as_ref().map(|x|{
_fbb.create_string(x)
});
let SUNRISE_SUNSET_QUERY = self.SUNRISE_SUNSET_QUERY.as_ref().map(|x|{
_fbb.create_vector(x)
});
let CLOCK_PROPAGATION = self.CLOCK_PROPAGATION.as_ref().map(|x|{
_fbb.create_string(x)
});
TME::create(_fbb, &TMEArgs{
COMMAND,
CONVERSION_REQUEST,
LEAP_SECOND_QUERY,
EOP_QUERY,
SIDEREAL_QUERY,
INTERVAL_REQUEST,
SOLAR_POSITION_QUERY,
LUNAR_POSITION_QUERY,
SUNRISE_SUNSET_QUERY,
CLOCK_PROPAGATION,
})
}
}
#[inline]
pub fn root_as_TME(buf: &[u8]) -> Result<TME, flatbuffers::InvalidFlatbuffer> {
flatbuffers::root::<TME>(buf)
}
#[inline]
pub fn size_prefixed_root_as_TME(buf: &[u8]) -> Result<TME, flatbuffers::InvalidFlatbuffer> {
flatbuffers::size_prefixed_root::<TME>(buf)
}
#[inline]
pub fn root_as_TME_with_opts<'b, 'o>(
opts: &'o flatbuffers::VerifierOptions,
buf: &'b [u8],
) -> Result<TME<'b>, flatbuffers::InvalidFlatbuffer> {
flatbuffers::root_with_opts::<TME<'b>>(opts, buf)
}
#[inline]
pub fn size_prefixed_root_as_TME_with_opts<'b, 'o>(
opts: &'o flatbuffers::VerifierOptions,
buf: &'b [u8],
) -> Result<TME<'b>, flatbuffers::InvalidFlatbuffer> {
flatbuffers::size_prefixed_root_with_opts::<TME<'b>>(opts, buf)
}
#[inline]
pub unsafe fn root_as_TME_unchecked(buf: &[u8]) -> TME {
flatbuffers::root_unchecked::<TME>(buf)
}
#[inline]
pub unsafe fn size_prefixed_root_as_TME_unchecked(buf: &[u8]) -> TME {
flatbuffers::size_prefixed_root_unchecked::<TME>(buf)
}
pub const TME_IDENTIFIER: &str = "$TME";
#[inline]
pub fn TME_buffer_has_identifier(buf: &[u8]) -> bool {
flatbuffers::buffer_has_identifier(buf, TME_IDENTIFIER, false)
}
#[inline]
pub fn TME_size_prefixed_buffer_has_identifier(buf: &[u8]) -> bool {
flatbuffers::buffer_has_identifier(buf, TME_IDENTIFIER, true)
}
#[inline]
pub fn finish_TME_buffer<'a, 'b, A: flatbuffers::Allocator + 'a>(
fbb: &'b mut flatbuffers::FlatBufferBuilder<'a, A>,
root: flatbuffers::WIPOffset<TME<'a>>) {
fbb.finish(root, Some(TME_IDENTIFIER));
}
#[inline]
pub fn finish_size_prefixed_TME_buffer<'a, 'b, A: flatbuffers::Allocator + 'a>(fbb: &'b mut flatbuffers::FlatBufferBuilder<'a, A>, root: flatbuffers::WIPOffset<TME<'a>>) {
fbb.finish_size_prefixed(root, Some(TME_IDENTIFIER));
}