Skip to main content

MessageDefinition

Struct MessageDefinition 

Source
pub struct MessageDefinition {
    pub global_mesg_num: u16,
    pub endian: Endian,
    pub fields: SmallVec<[FieldDefinition; 48]>,
    pub dev_fields: SmallVec<[DeveloperFieldDefinition; 8]>,
    pub reserved: u8,
}
Expand description

A complete Definition message.

fields and dev_fields use SmallVec with inline capacity tuned to fit typical FIT messages on the stack. The whole struct is ~256B inline so LocalDefinitions (16 slots) sits in ~4KB — well within L1d. Cloning is a memcpy with no heap allocation in the common case.

Fields§

§global_mesg_num: u16

Profile-level (global) message number — the index into MesgNum.

§endian: Endian

Endianness for multi-byte fields in subsequent Data messages.

§fields: SmallVec<[FieldDefinition; 48]>

Standard fields, in wire order.

§dev_fields: SmallVec<[DeveloperFieldDefinition; 8]>

Developer fields, in wire order. Empty unless the definition’s record header had the dev-data bit set.

§reserved: u8

Reserved byte preserved verbatim (always 0x00 for compliant files, but kept so the encoder can reproduce non-compliant input bit-for-bit).

Implementations§

Source§

impl MessageDefinition

Source

pub fn parse( stream: &mut ByteStream<'_>, has_dev_data: bool, ) -> Result<Self, FitError>

Parse the body of a Definition message from stream.

Assumes the 1-byte record header has already been consumed and that has_dev_data reflects bit 5 of that header.

Source

pub fn data_size(&self) -> usize

Total bytes consumed by a single Data message (excluding its 1-byte header) keyed by this definition.

Source

pub fn field(&self, field_def_num: u8) -> Option<&FieldDefinition>

Look up a standard field by its definition number.

Trait Implementations§

Source§

impl Clone for MessageDefinition

Source§

fn clone(&self) -> MessageDefinition

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 Debug for MessageDefinition

Source§

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

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

impl PartialEq for MessageDefinition

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for MessageDefinition

Source§

impl StructuralPartialEq for MessageDefinition

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> 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.