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_SENSOR_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_SENSOR_TYPE: i8 = 15;
#[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_SENSOR_TYPE: [SensorType; 16] = [
SensorType::RADAR_PULSE,
SensorType::RADAR_DOPPLER,
SensorType::RADAR_CW,
SensorType::RADAR_AESA,
SensorType::RADAR_PESA,
SensorType::IR_SEARCH,
SensorType::IR_IMAGING,
SensorType::EO_TV,
SensorType::EO_LLLTV,
SensorType::LASER_DESIGNATOR,
SensorType::LASER_RANGEFINDER,
SensorType::RWR,
SensorType::MAW,
SensorType::SONAR_ACTIVE,
SensorType::SONAR_PASSIVE,
SensorType::ACOUSTIC,
];
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
#[repr(transparent)]
pub struct SensorType(pub i8);
#[allow(non_upper_case_globals)]
impl SensorType {
pub const RADAR_PULSE: Self = Self(0);
pub const RADAR_DOPPLER: Self = Self(1);
pub const RADAR_CW: Self = Self(2);
pub const RADAR_AESA: Self = Self(3);
pub const RADAR_PESA: Self = Self(4);
pub const IR_SEARCH: Self = Self(5);
pub const IR_IMAGING: Self = Self(6);
pub const EO_TV: Self = Self(7);
pub const EO_LLLTV: Self = Self(8);
pub const LASER_DESIGNATOR: Self = Self(9);
pub const LASER_RANGEFINDER: Self = Self(10);
pub const RWR: Self = Self(11);
pub const MAW: Self = Self(12);
pub const SONAR_ACTIVE: Self = Self(13);
pub const SONAR_PASSIVE: Self = Self(14);
pub const ACOUSTIC: Self = Self(15);
pub const ENUM_MIN: i8 = 0;
pub const ENUM_MAX: i8 = 15;
pub const ENUM_VALUES: &'static [Self] = &[
Self::RADAR_PULSE,
Self::RADAR_DOPPLER,
Self::RADAR_CW,
Self::RADAR_AESA,
Self::RADAR_PESA,
Self::IR_SEARCH,
Self::IR_IMAGING,
Self::EO_TV,
Self::EO_LLLTV,
Self::LASER_DESIGNATOR,
Self::LASER_RANGEFINDER,
Self::RWR,
Self::MAW,
Self::SONAR_ACTIVE,
Self::SONAR_PASSIVE,
Self::ACOUSTIC,
];
pub fn variant_name(self) -> Option<&'static str> {
match self {
Self::RADAR_PULSE => Some("RADAR_PULSE"),
Self::RADAR_DOPPLER => Some("RADAR_DOPPLER"),
Self::RADAR_CW => Some("RADAR_CW"),
Self::RADAR_AESA => Some("RADAR_AESA"),
Self::RADAR_PESA => Some("RADAR_PESA"),
Self::IR_SEARCH => Some("IR_SEARCH"),
Self::IR_IMAGING => Some("IR_IMAGING"),
Self::EO_TV => Some("EO_TV"),
Self::EO_LLLTV => Some("EO_LLLTV"),
Self::LASER_DESIGNATOR => Some("LASER_DESIGNATOR"),
Self::LASER_RANGEFINDER => Some("LASER_RANGEFINDER"),
Self::RWR => Some("RWR"),
Self::MAW => Some("MAW"),
Self::SONAR_ACTIVE => Some("SONAR_ACTIVE"),
Self::SONAR_PASSIVE => Some("SONAR_PASSIVE"),
Self::ACOUSTIC => Some("ACOUSTIC"),
_ => None,
}
}
}
impl core::fmt::Debug for SensorType {
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 SensorType {
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 SensorType {
type Output = SensorType;
#[inline]
unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
flatbuffers::emplace_scalar::<i8>(dst, self.0);
}
}
impl flatbuffers::EndianScalar for SensorType {
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 SensorType {
#[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 SensorType {}
#[deprecated(since = "2.0.0", note = "Use associated constants instead. This will no longer be generated in 2021.")]
pub const ENUM_MIN_SENSOR_MODE: i8 = 0;
#[deprecated(since = "2.0.0", note = "Use associated constants instead. This will no longer be generated in 2021.")]
pub const ENUM_MAX_SENSOR_MODE: i8 = 7;
#[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_SENSOR_MODE: [SensorMode; 8] = [
SensorMode::OFF,
SensorMode::STANDBY,
SensorMode::SEARCH,
SensorMode::ACQUISITION,
SensorMode::TRACK,
SensorMode::TRACK_WHILE_SCAN,
SensorMode::DESIGNATE,
SensorMode::JAMMED,
];
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
#[repr(transparent)]
pub struct SensorMode(pub i8);
#[allow(non_upper_case_globals)]
impl SensorMode {
pub const OFF: Self = Self(0);
pub const STANDBY: Self = Self(1);
pub const SEARCH: Self = Self(2);
pub const ACQUISITION: Self = Self(3);
pub const TRACK: Self = Self(4);
pub const TRACK_WHILE_SCAN: Self = Self(5);
pub const DESIGNATE: Self = Self(6);
pub const JAMMED: Self = Self(7);
pub const ENUM_MIN: i8 = 0;
pub const ENUM_MAX: i8 = 7;
pub const ENUM_VALUES: &'static [Self] = &[
Self::OFF,
Self::STANDBY,
Self::SEARCH,
Self::ACQUISITION,
Self::TRACK,
Self::TRACK_WHILE_SCAN,
Self::DESIGNATE,
Self::JAMMED,
];
pub fn variant_name(self) -> Option<&'static str> {
match self {
Self::OFF => Some("OFF"),
Self::STANDBY => Some("STANDBY"),
Self::SEARCH => Some("SEARCH"),
Self::ACQUISITION => Some("ACQUISITION"),
Self::TRACK => Some("TRACK"),
Self::TRACK_WHILE_SCAN => Some("TRACK_WHILE_SCAN"),
Self::DESIGNATE => Some("DESIGNATE"),
Self::JAMMED => Some("JAMMED"),
_ => None,
}
}
}
impl core::fmt::Debug for SensorMode {
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 SensorMode {
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 SensorMode {
type Output = SensorMode;
#[inline]
unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
flatbuffers::emplace_scalar::<i8>(dst, self.0);
}
}
impl flatbuffers::EndianScalar for SensorMode {
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 SensorMode {
#[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 SensorMode {}
#[deprecated(since = "2.0.0", note = "Use associated constants instead. This will no longer be generated in 2021.")]
pub const ENUM_MIN_TRACK_QUALITY: i8 = 0;
#[deprecated(since = "2.0.0", note = "Use associated constants instead. This will no longer be generated in 2021.")]
pub const ENUM_MAX_TRACK_QUALITY: 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_TRACK_QUALITY: [TrackQuality; 6] = [
TrackQuality::NONE,
TrackQuality::TENTATIVE,
TrackQuality::FIRM,
TrackQuality::LOCKED,
TrackQuality::COASTING,
TrackQuality::LOST,
];
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
#[repr(transparent)]
pub struct TrackQuality(pub i8);
#[allow(non_upper_case_globals)]
impl TrackQuality {
pub const NONE: Self = Self(0);
pub const TENTATIVE: Self = Self(1);
pub const FIRM: Self = Self(2);
pub const LOCKED: Self = Self(3);
pub const COASTING: Self = Self(4);
pub const LOST: Self = Self(5);
pub const ENUM_MIN: i8 = 0;
pub const ENUM_MAX: i8 = 5;
pub const ENUM_VALUES: &'static [Self] = &[
Self::NONE,
Self::TENTATIVE,
Self::FIRM,
Self::LOCKED,
Self::COASTING,
Self::LOST,
];
pub fn variant_name(self) -> Option<&'static str> {
match self {
Self::NONE => Some("NONE"),
Self::TENTATIVE => Some("TENTATIVE"),
Self::FIRM => Some("FIRM"),
Self::LOCKED => Some("LOCKED"),
Self::COASTING => Some("COASTING"),
Self::LOST => Some("LOST"),
_ => None,
}
}
}
impl core::fmt::Debug for TrackQuality {
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 TrackQuality {
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 TrackQuality {
type Output = TrackQuality;
#[inline]
unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
flatbuffers::emplace_scalar::<i8>(dst, self.0);
}
}
impl flatbuffers::EndianScalar for TrackQuality {
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 TrackQuality {
#[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 TrackQuality {}
pub enum SNROffset {}
#[derive(Copy, Clone, PartialEq)]
pub struct SNR<'a> {
pub _tab: flatbuffers::Table<'a>,
}
impl<'a> flatbuffers::Follow<'a> for SNR<'a> {
type Inner = SNR<'a>;
#[inline]
unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
Self { _tab: flatbuffers::Table::new(buf, loc) }
}
}
impl<'a> SNR<'a> {
pub const VT_TYPE: flatbuffers::VOffsetT = 4;
pub const VT_MODE: flatbuffers::VOffsetT = 6;
pub const VT_RESERVED1: flatbuffers::VOffsetT = 8;
pub const VT_MAX_RANGE: flatbuffers::VOffsetT = 10;
pub const VT_MIN_RANGE: flatbuffers::VOffsetT = 12;
pub const VT_FOV_AZIMUTH: flatbuffers::VOffsetT = 14;
pub const VT_FOV_ELEVATION: flatbuffers::VOffsetT = 16;
pub const VT_ANGULAR_RESOLUTION: flatbuffers::VOffsetT = 18;
pub const VT_RANGE_RESOLUTION: flatbuffers::VOffsetT = 20;
pub const VT_UPDATE_RATE: flatbuffers::VOffsetT = 22;
pub const VT_DETECTION_THRESHOLD: flatbuffers::VOffsetT = 24;
pub const VT_AZIMUTH_SCAN_RATE: flatbuffers::VOffsetT = 26;
pub const VT_ELEVATION_SCAN_RATE: flatbuffers::VOffsetT = 28;
pub const VT_POWER: flatbuffers::VOffsetT = 30;
pub const VT_FREQUENCY: flatbuffers::VOffsetT = 32;
pub const VT_RESERVED: flatbuffers::VOffsetT = 34;
#[inline]
pub unsafe fn init_from_table(table: flatbuffers::Table<'a>) -> Self {
SNR { _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 SNRArgs<'args>
) -> flatbuffers::WIPOffset<SNR<'bldr>> {
let mut builder = SNRBuilder::new(_fbb);
builder.add_MIN_RANGE(args.MIN_RANGE);
builder.add_MAX_RANGE(args.MAX_RANGE);
if let Some(x) = args.RESERVED { builder.add_RESERVED(x); }
builder.add_FREQUENCY(args.FREQUENCY);
builder.add_POWER(args.POWER);
builder.add_ELEVATION_SCAN_RATE(args.ELEVATION_SCAN_RATE);
builder.add_AZIMUTH_SCAN_RATE(args.AZIMUTH_SCAN_RATE);
builder.add_DETECTION_THRESHOLD(args.DETECTION_THRESHOLD);
builder.add_UPDATE_RATE(args.UPDATE_RATE);
builder.add_RANGE_RESOLUTION(args.RANGE_RESOLUTION);
builder.add_ANGULAR_RESOLUTION(args.ANGULAR_RESOLUTION);
builder.add_FOV_ELEVATION(args.FOV_ELEVATION);
builder.add_FOV_AZIMUTH(args.FOV_AZIMUTH);
builder.add_RESERVED1(args.RESERVED1);
builder.add_MODE(args.MODE);
builder.add_TYPE(args.TYPE);
builder.finish()
}
pub fn unpack(&self) -> SNRT {
let TYPE = self.TYPE();
let MODE = self.MODE();
let RESERVED1 = self.RESERVED1();
let MAX_RANGE = self.MAX_RANGE();
let MIN_RANGE = self.MIN_RANGE();
let FOV_AZIMUTH = self.FOV_AZIMUTH();
let FOV_ELEVATION = self.FOV_ELEVATION();
let ANGULAR_RESOLUTION = self.ANGULAR_RESOLUTION();
let RANGE_RESOLUTION = self.RANGE_RESOLUTION();
let UPDATE_RATE = self.UPDATE_RATE();
let DETECTION_THRESHOLD = self.DETECTION_THRESHOLD();
let AZIMUTH_SCAN_RATE = self.AZIMUTH_SCAN_RATE();
let ELEVATION_SCAN_RATE = self.ELEVATION_SCAN_RATE();
let POWER = self.POWER();
let FREQUENCY = self.FREQUENCY();
let RESERVED = self.RESERVED().map(|x| {
x.into_iter().collect()
});
SNRT {
TYPE,
MODE,
RESERVED1,
MAX_RANGE,
MIN_RANGE,
FOV_AZIMUTH,
FOV_ELEVATION,
ANGULAR_RESOLUTION,
RANGE_RESOLUTION,
UPDATE_RATE,
DETECTION_THRESHOLD,
AZIMUTH_SCAN_RATE,
ELEVATION_SCAN_RATE,
POWER,
FREQUENCY,
RESERVED,
}
}
#[inline]
pub fn TYPE(&self) -> u8 {
unsafe { self._tab.get::<u8>(SNR::VT_TYPE, Some(0)).unwrap()}
}
#[inline]
pub fn MODE(&self) -> u8 {
unsafe { self._tab.get::<u8>(SNR::VT_MODE, Some(0)).unwrap()}
}
#[inline]
pub fn RESERVED1(&self) -> u16 {
unsafe { self._tab.get::<u16>(SNR::VT_RESERVED1, Some(0)).unwrap()}
}
#[inline]
pub fn MAX_RANGE(&self) -> f64 {
unsafe { self._tab.get::<f64>(SNR::VT_MAX_RANGE, Some(0.0)).unwrap()}
}
#[inline]
pub fn MIN_RANGE(&self) -> f64 {
unsafe { self._tab.get::<f64>(SNR::VT_MIN_RANGE, Some(0.0)).unwrap()}
}
#[inline]
pub fn FOV_AZIMUTH(&self) -> f32 {
unsafe { self._tab.get::<f32>(SNR::VT_FOV_AZIMUTH, Some(0.0)).unwrap()}
}
#[inline]
pub fn FOV_ELEVATION(&self) -> f32 {
unsafe { self._tab.get::<f32>(SNR::VT_FOV_ELEVATION, Some(0.0)).unwrap()}
}
#[inline]
pub fn ANGULAR_RESOLUTION(&self) -> f32 {
unsafe { self._tab.get::<f32>(SNR::VT_ANGULAR_RESOLUTION, Some(0.0)).unwrap()}
}
#[inline]
pub fn RANGE_RESOLUTION(&self) -> f32 {
unsafe { self._tab.get::<f32>(SNR::VT_RANGE_RESOLUTION, Some(0.0)).unwrap()}
}
#[inline]
pub fn UPDATE_RATE(&self) -> f32 {
unsafe { self._tab.get::<f32>(SNR::VT_UPDATE_RATE, Some(0.0)).unwrap()}
}
#[inline]
pub fn DETECTION_THRESHOLD(&self) -> f32 {
unsafe { self._tab.get::<f32>(SNR::VT_DETECTION_THRESHOLD, Some(0.0)).unwrap()}
}
#[inline]
pub fn AZIMUTH_SCAN_RATE(&self) -> f32 {
unsafe { self._tab.get::<f32>(SNR::VT_AZIMUTH_SCAN_RATE, Some(0.0)).unwrap()}
}
#[inline]
pub fn ELEVATION_SCAN_RATE(&self) -> f32 {
unsafe { self._tab.get::<f32>(SNR::VT_ELEVATION_SCAN_RATE, Some(0.0)).unwrap()}
}
#[inline]
pub fn POWER(&self) -> f32 {
unsafe { self._tab.get::<f32>(SNR::VT_POWER, Some(0.0)).unwrap()}
}
#[inline]
pub fn FREQUENCY(&self) -> f32 {
unsafe { self._tab.get::<f32>(SNR::VT_FREQUENCY, Some(0.0)).unwrap()}
}
#[inline]
pub fn RESERVED(&self) -> Option<flatbuffers::Vector<'a, u8>> {
unsafe { self._tab.get::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'a, u8>>>(SNR::VT_RESERVED, None)}
}
}
impl flatbuffers::Verifiable for SNR<'_> {
#[inline]
fn run_verifier(
v: &mut flatbuffers::Verifier, pos: usize
) -> Result<(), flatbuffers::InvalidFlatbuffer> {
use self::flatbuffers::Verifiable;
v.visit_table(pos)?
.visit_field::<u8>("TYPE", Self::VT_TYPE, false)?
.visit_field::<u8>("MODE", Self::VT_MODE, false)?
.visit_field::<u16>("RESERVED1", Self::VT_RESERVED1, false)?
.visit_field::<f64>("MAX_RANGE", Self::VT_MAX_RANGE, false)?
.visit_field::<f64>("MIN_RANGE", Self::VT_MIN_RANGE, false)?
.visit_field::<f32>("FOV_AZIMUTH", Self::VT_FOV_AZIMUTH, false)?
.visit_field::<f32>("FOV_ELEVATION", Self::VT_FOV_ELEVATION, false)?
.visit_field::<f32>("ANGULAR_RESOLUTION", Self::VT_ANGULAR_RESOLUTION, false)?
.visit_field::<f32>("RANGE_RESOLUTION", Self::VT_RANGE_RESOLUTION, false)?
.visit_field::<f32>("UPDATE_RATE", Self::VT_UPDATE_RATE, false)?
.visit_field::<f32>("DETECTION_THRESHOLD", Self::VT_DETECTION_THRESHOLD, false)?
.visit_field::<f32>("AZIMUTH_SCAN_RATE", Self::VT_AZIMUTH_SCAN_RATE, false)?
.visit_field::<f32>("ELEVATION_SCAN_RATE", Self::VT_ELEVATION_SCAN_RATE, false)?
.visit_field::<f32>("POWER", Self::VT_POWER, false)?
.visit_field::<f32>("FREQUENCY", Self::VT_FREQUENCY, false)?
.visit_field::<flatbuffers::ForwardsUOffset<flatbuffers::Vector<'_, u8>>>("RESERVED", Self::VT_RESERVED, false)?
.finish();
Ok(())
}
}
pub struct SNRArgs<'a> {
pub TYPE: u8,
pub MODE: u8,
pub RESERVED1: u16,
pub MAX_RANGE: f64,
pub MIN_RANGE: f64,
pub FOV_AZIMUTH: f32,
pub FOV_ELEVATION: f32,
pub ANGULAR_RESOLUTION: f32,
pub RANGE_RESOLUTION: f32,
pub UPDATE_RATE: f32,
pub DETECTION_THRESHOLD: f32,
pub AZIMUTH_SCAN_RATE: f32,
pub ELEVATION_SCAN_RATE: f32,
pub POWER: f32,
pub FREQUENCY: f32,
pub RESERVED: Option<flatbuffers::WIPOffset<flatbuffers::Vector<'a, u8>>>,
}
impl<'a> Default for SNRArgs<'a> {
#[inline]
fn default() -> Self {
SNRArgs {
TYPE: 0,
MODE: 0,
RESERVED1: 0,
MAX_RANGE: 0.0,
MIN_RANGE: 0.0,
FOV_AZIMUTH: 0.0,
FOV_ELEVATION: 0.0,
ANGULAR_RESOLUTION: 0.0,
RANGE_RESOLUTION: 0.0,
UPDATE_RATE: 0.0,
DETECTION_THRESHOLD: 0.0,
AZIMUTH_SCAN_RATE: 0.0,
ELEVATION_SCAN_RATE: 0.0,
POWER: 0.0,
FREQUENCY: 0.0,
RESERVED: None,
}
}
}
pub struct SNRBuilder<'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> SNRBuilder<'a, 'b, A> {
#[inline]
pub fn add_TYPE(&mut self, TYPE: u8) {
self.fbb_.push_slot::<u8>(SNR::VT_TYPE, TYPE, 0);
}
#[inline]
pub fn add_MODE(&mut self, MODE: u8) {
self.fbb_.push_slot::<u8>(SNR::VT_MODE, MODE, 0);
}
#[inline]
pub fn add_RESERVED1(&mut self, RESERVED1: u16) {
self.fbb_.push_slot::<u16>(SNR::VT_RESERVED1, RESERVED1, 0);
}
#[inline]
pub fn add_MAX_RANGE(&mut self, MAX_RANGE: f64) {
self.fbb_.push_slot::<f64>(SNR::VT_MAX_RANGE, MAX_RANGE, 0.0);
}
#[inline]
pub fn add_MIN_RANGE(&mut self, MIN_RANGE: f64) {
self.fbb_.push_slot::<f64>(SNR::VT_MIN_RANGE, MIN_RANGE, 0.0);
}
#[inline]
pub fn add_FOV_AZIMUTH(&mut self, FOV_AZIMUTH: f32) {
self.fbb_.push_slot::<f32>(SNR::VT_FOV_AZIMUTH, FOV_AZIMUTH, 0.0);
}
#[inline]
pub fn add_FOV_ELEVATION(&mut self, FOV_ELEVATION: f32) {
self.fbb_.push_slot::<f32>(SNR::VT_FOV_ELEVATION, FOV_ELEVATION, 0.0);
}
#[inline]
pub fn add_ANGULAR_RESOLUTION(&mut self, ANGULAR_RESOLUTION: f32) {
self.fbb_.push_slot::<f32>(SNR::VT_ANGULAR_RESOLUTION, ANGULAR_RESOLUTION, 0.0);
}
#[inline]
pub fn add_RANGE_RESOLUTION(&mut self, RANGE_RESOLUTION: f32) {
self.fbb_.push_slot::<f32>(SNR::VT_RANGE_RESOLUTION, RANGE_RESOLUTION, 0.0);
}
#[inline]
pub fn add_UPDATE_RATE(&mut self, UPDATE_RATE: f32) {
self.fbb_.push_slot::<f32>(SNR::VT_UPDATE_RATE, UPDATE_RATE, 0.0);
}
#[inline]
pub fn add_DETECTION_THRESHOLD(&mut self, DETECTION_THRESHOLD: f32) {
self.fbb_.push_slot::<f32>(SNR::VT_DETECTION_THRESHOLD, DETECTION_THRESHOLD, 0.0);
}
#[inline]
pub fn add_AZIMUTH_SCAN_RATE(&mut self, AZIMUTH_SCAN_RATE: f32) {
self.fbb_.push_slot::<f32>(SNR::VT_AZIMUTH_SCAN_RATE, AZIMUTH_SCAN_RATE, 0.0);
}
#[inline]
pub fn add_ELEVATION_SCAN_RATE(&mut self, ELEVATION_SCAN_RATE: f32) {
self.fbb_.push_slot::<f32>(SNR::VT_ELEVATION_SCAN_RATE, ELEVATION_SCAN_RATE, 0.0);
}
#[inline]
pub fn add_POWER(&mut self, POWER: f32) {
self.fbb_.push_slot::<f32>(SNR::VT_POWER, POWER, 0.0);
}
#[inline]
pub fn add_FREQUENCY(&mut self, FREQUENCY: f32) {
self.fbb_.push_slot::<f32>(SNR::VT_FREQUENCY, FREQUENCY, 0.0);
}
#[inline]
pub fn add_RESERVED(&mut self, RESERVED: flatbuffers::WIPOffset<flatbuffers::Vector<'b , u8>>) {
self.fbb_.push_slot_always::<flatbuffers::WIPOffset<_>>(SNR::VT_RESERVED, RESERVED);
}
#[inline]
pub fn new(_fbb: &'b mut flatbuffers::FlatBufferBuilder<'a, A>) -> SNRBuilder<'a, 'b, A> {
let start = _fbb.start_table();
SNRBuilder {
fbb_: _fbb,
start_: start,
}
}
#[inline]
pub fn finish(self) -> flatbuffers::WIPOffset<SNR<'a>> {
let o = self.fbb_.end_table(self.start_);
flatbuffers::WIPOffset::new(o.value())
}
}
impl core::fmt::Debug for SNR<'_> {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
let mut ds = f.debug_struct("SNR");
ds.field("TYPE", &self.TYPE());
ds.field("MODE", &self.MODE());
ds.field("RESERVED1", &self.RESERVED1());
ds.field("MAX_RANGE", &self.MAX_RANGE());
ds.field("MIN_RANGE", &self.MIN_RANGE());
ds.field("FOV_AZIMUTH", &self.FOV_AZIMUTH());
ds.field("FOV_ELEVATION", &self.FOV_ELEVATION());
ds.field("ANGULAR_RESOLUTION", &self.ANGULAR_RESOLUTION());
ds.field("RANGE_RESOLUTION", &self.RANGE_RESOLUTION());
ds.field("UPDATE_RATE", &self.UPDATE_RATE());
ds.field("DETECTION_THRESHOLD", &self.DETECTION_THRESHOLD());
ds.field("AZIMUTH_SCAN_RATE", &self.AZIMUTH_SCAN_RATE());
ds.field("ELEVATION_SCAN_RATE", &self.ELEVATION_SCAN_RATE());
ds.field("POWER", &self.POWER());
ds.field("FREQUENCY", &self.FREQUENCY());
ds.field("RESERVED", &self.RESERVED());
ds.finish()
}
}
#[non_exhaustive]
#[derive(Debug, Clone, PartialEq)]
pub struct SNRT {
pub TYPE: u8,
pub MODE: u8,
pub RESERVED1: u16,
pub MAX_RANGE: f64,
pub MIN_RANGE: f64,
pub FOV_AZIMUTH: f32,
pub FOV_ELEVATION: f32,
pub ANGULAR_RESOLUTION: f32,
pub RANGE_RESOLUTION: f32,
pub UPDATE_RATE: f32,
pub DETECTION_THRESHOLD: f32,
pub AZIMUTH_SCAN_RATE: f32,
pub ELEVATION_SCAN_RATE: f32,
pub POWER: f32,
pub FREQUENCY: f32,
pub RESERVED: Option<Vec<u8>>,
}
impl Default for SNRT {
fn default() -> Self {
Self {
TYPE: 0,
MODE: 0,
RESERVED1: 0,
MAX_RANGE: 0.0,
MIN_RANGE: 0.0,
FOV_AZIMUTH: 0.0,
FOV_ELEVATION: 0.0,
ANGULAR_RESOLUTION: 0.0,
RANGE_RESOLUTION: 0.0,
UPDATE_RATE: 0.0,
DETECTION_THRESHOLD: 0.0,
AZIMUTH_SCAN_RATE: 0.0,
ELEVATION_SCAN_RATE: 0.0,
POWER: 0.0,
FREQUENCY: 0.0,
RESERVED: None,
}
}
}
impl SNRT {
pub fn pack<'b, A: flatbuffers::Allocator + 'b>(
&self,
_fbb: &mut flatbuffers::FlatBufferBuilder<'b, A>
) -> flatbuffers::WIPOffset<SNR<'b>> {
let TYPE = self.TYPE;
let MODE = self.MODE;
let RESERVED1 = self.RESERVED1;
let MAX_RANGE = self.MAX_RANGE;
let MIN_RANGE = self.MIN_RANGE;
let FOV_AZIMUTH = self.FOV_AZIMUTH;
let FOV_ELEVATION = self.FOV_ELEVATION;
let ANGULAR_RESOLUTION = self.ANGULAR_RESOLUTION;
let RANGE_RESOLUTION = self.RANGE_RESOLUTION;
let UPDATE_RATE = self.UPDATE_RATE;
let DETECTION_THRESHOLD = self.DETECTION_THRESHOLD;
let AZIMUTH_SCAN_RATE = self.AZIMUTH_SCAN_RATE;
let ELEVATION_SCAN_RATE = self.ELEVATION_SCAN_RATE;
let POWER = self.POWER;
let FREQUENCY = self.FREQUENCY;
let RESERVED = self.RESERVED.as_ref().map(|x|{
_fbb.create_vector(x)
});
SNR::create(_fbb, &SNRArgs{
TYPE,
MODE,
RESERVED1,
MAX_RANGE,
MIN_RANGE,
FOV_AZIMUTH,
FOV_ELEVATION,
ANGULAR_RESOLUTION,
RANGE_RESOLUTION,
UPDATE_RATE,
DETECTION_THRESHOLD,
AZIMUTH_SCAN_RATE,
ELEVATION_SCAN_RATE,
POWER,
FREQUENCY,
RESERVED,
})
}
}
#[inline]
pub fn root_as_SNR(buf: &[u8]) -> Result<SNR, flatbuffers::InvalidFlatbuffer> {
flatbuffers::root::<SNR>(buf)
}
#[inline]
pub fn size_prefixed_root_as_SNR(buf: &[u8]) -> Result<SNR, flatbuffers::InvalidFlatbuffer> {
flatbuffers::size_prefixed_root::<SNR>(buf)
}
#[inline]
pub fn root_as_SNR_with_opts<'b, 'o>(
opts: &'o flatbuffers::VerifierOptions,
buf: &'b [u8],
) -> Result<SNR<'b>, flatbuffers::InvalidFlatbuffer> {
flatbuffers::root_with_opts::<SNR<'b>>(opts, buf)
}
#[inline]
pub fn size_prefixed_root_as_SNR_with_opts<'b, 'o>(
opts: &'o flatbuffers::VerifierOptions,
buf: &'b [u8],
) -> Result<SNR<'b>, flatbuffers::InvalidFlatbuffer> {
flatbuffers::size_prefixed_root_with_opts::<SNR<'b>>(opts, buf)
}
#[inline]
pub unsafe fn root_as_SNR_unchecked(buf: &[u8]) -> SNR {
flatbuffers::root_unchecked::<SNR>(buf)
}
#[inline]
pub unsafe fn size_prefixed_root_as_SNR_unchecked(buf: &[u8]) -> SNR {
flatbuffers::size_prefixed_root_unchecked::<SNR>(buf)
}
pub const SNR_IDENTIFIER: &str = "$SNR";
#[inline]
pub fn SNR_buffer_has_identifier(buf: &[u8]) -> bool {
flatbuffers::buffer_has_identifier(buf, SNR_IDENTIFIER, false)
}
#[inline]
pub fn SNR_size_prefixed_buffer_has_identifier(buf: &[u8]) -> bool {
flatbuffers::buffer_has_identifier(buf, SNR_IDENTIFIER, true)
}
#[inline]
pub fn finish_SNR_buffer<'a, 'b, A: flatbuffers::Allocator + 'a>(
fbb: &'b mut flatbuffers::FlatBufferBuilder<'a, A>,
root: flatbuffers::WIPOffset<SNR<'a>>) {
fbb.finish(root, Some(SNR_IDENTIFIER));
}
#[inline]
pub fn finish_size_prefixed_SNR_buffer<'a, 'b, A: flatbuffers::Allocator + 'a>(fbb: &'b mut flatbuffers::FlatBufferBuilder<'a, A>, root: flatbuffers::WIPOffset<SNR<'a>>) {
fbb.finish_size_prefixed(root, Some(SNR_IDENTIFIER));
}