Skip to main content

EnumDescriptor

Struct EnumDescriptor 

Source
pub struct EnumDescriptor {
    pub name: &'static str,
    pub bitmask: bool,
    pub entries: &'static [EnumEntry],
}
Expand description

A dialect enumeration: its name, whether its values combine as bits, and every value it names, in the order the dialect lists them.

Fields§

§name: &'static str

The enumeration’s name, such as "MAV_STATE".

§bitmask: bool

Whether a field of this enumeration holds several of its values at once, one per bit.

§entries: &'static [EnumEntry]

Every value the enumeration names.

Implementations§

Source§

impl EnumDescriptor

Source

pub fn value(&self, entry: &str) -> Option<u64>

Returns the value an entry of this enumeration names.

§Arguments
  • entry - the entry’s name as the dialect writes it, such as "MAV_STATE_STANDBY".
§Returns

Some(value), or None if no entry of this enumeration has that name.

§Examples
use pamoja_mavlink::dialect::enum_named;

let state = enum_named("MAV_STATE").expect("a dialect enumeration");
assert_eq!(state.value("MAV_STATE_STANDBY"), Some(3));
Source

pub fn entry(&self, value: u64) -> Option<&'static str>

Returns the name of the entry that stands for a value.

§Arguments
  • value - the value a field carried.
§Returns

Some(name) for the first entry, in dialect order, with exactly that value, or None if no entry names it. For a bitmask, see names.

Source

pub fn names(&self, value: u64) -> impl Iterator<Item = &'static str> + '_

Returns the names a value is made of.

§Arguments
  • value - the value a field carried.
§Returns

For a bitmask, each entry whose bits are all set in value, in dialect order, or the entry for zero when value is zero. Otherwise the one entry that names value. Bits or values no entry names are left out.

§Examples
use pamoja_mavlink::dialect::{enum_named, mav_mode_flag};

let flags = enum_named("MAV_MODE_FLAG").expect("a dialect enumeration");
let base_mode = mav_mode_flag::SAFETY_ARMED | mav_mode_flag::CUSTOM_MODE_ENABLED;
let names: Vec<&str> = flags.names(u64::from(base_mode)).collect();
assert_eq!(names, ["MAV_MODE_FLAG_SAFETY_ARMED", "MAV_MODE_FLAG_CUSTOM_MODE_ENABLED"]);

Trait Implementations§

Source§

impl Clone for EnumDescriptor

Source§

fn clone(&self) -> EnumDescriptor

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for EnumDescriptor

Source§

impl Debug for EnumDescriptor

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for EnumDescriptor

Source§

impl PartialEq for EnumDescriptor

Source§

fn eq(&self, other: &EnumDescriptor) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for EnumDescriptor

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.