ServiceEntryRepr

Struct ServiceEntryRepr 

Source
pub struct ServiceEntryRepr {
    pub entry_type: EntryType,
    pub index_first_option_run: u8,
    pub index_second_option_run: u8,
    pub number_of_options: NumberOfOptions,
    pub service_id: u16,
    pub instance_id: u16,
    pub major_version: u8,
    pub ttl: u32,
    pub minor_version: u32,
}
Expand description

High-level representation of a Service Entry.

This provides a builder-style API for constructing and parsing service entries without manually managing byte arrays.

Fields§

§entry_type: EntryType

Entry type (FindService or OfferService)

§index_first_option_run: u8

Index of first option run

§index_second_option_run: u8

Index of second option run

§number_of_options: NumberOfOptions

Number of options in both runs

§service_id: u16

Service ID

§instance_id: u16

Instance ID

§major_version: u8

Major version

§ttl: u32

TTL in seconds (0xFFFFFF = infinite, 0 = stop offer)

§minor_version: u32

Minor version

Implementations§

Source§

impl ServiceEntryRepr

Source

pub fn parse<T: AsRef<[u8]>>(entry: &ServiceEntry<T>) -> Result<Self>

Parse a ServiceEntry into a high-level representation.

§Parameters
  • entry - The ServiceEntry to parse
§Returns

ServiceEntryRepr with all fields populated

§Errors

Returns Error::InvalidEntryType if entry type is not FindService or OfferService

Source

pub fn emit<T: AsRef<[u8]> + AsMut<[u8]>>(&self, entry: &mut ServiceEntry<T>)

Emit this representation into a ServiceEntry buffer.

§Parameters
  • entry - Mutable ServiceEntry to write into
Source

pub const fn buffer_len() -> usize

Get the wire format size of this entry (always 16 bytes).

Trait Implementations§

Source§

impl Clone for ServiceEntryRepr

Source§

fn clone(&self) -> ServiceEntryRepr

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for ServiceEntryRepr

Source§

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

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

impl PartialEq for ServiceEntryRepr

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · 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 Copy for ServiceEntryRepr

Source§

impl Eq for ServiceEntryRepr

Source§

impl StructuralPartialEq for ServiceEntryRepr

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