Skip to main content

DoipHeader

Struct DoipHeader 

Source
pub struct DoipHeader {
    pub protocol_version: ProtocolVersion,
    pub inverse_protocol_version: u8,
    pub payload_type: PayloadType,
    pub payload_length: u32,
}
Expand description

The definitive fields of a DoIP frame.

The definition of a DoIP frame is found in the DoipHeader, this contains each key field which a parser uses to identify the bytes which pertain to a DoIP frame.

Fields§

§protocol_version: ProtocolVersion

protocol_version acts a pair with the inverse_protocol_version to create a validation check to ensure the packet is constructed correctly. There are specific versions available within the DoipVersion enum.

§inverse_protocol_version: u8

Calculated using bitwise inversion, the inverse_protocol_version acts as a validation technique for validating the packet.

§payload_type: PayloadType

The type of payload alongside the header, this defines what is contained within the message, and directs the parser to accurately identify fields.

A list of valid Payload Types are available in the PayloadType enum.

§payload_length: u32

The payload_length is automatically calulated on the construction of a DoipHeader and is taken from the payload the header was initiated with.

This tells the parser how many bytes to expect after the header.

Trait Implementations§

Source§

impl Clone for DoipHeader

Source§

fn clone(&self) -> DoipHeader

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 DoipHeader

Source§

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

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

impl Default for DoipHeader

Source§

fn default() -> Self

Constructs a default DoipHeader with:

  • Protocol version set to DefaultValue
  • Inverse protocol version calculated automatically
  • Payload type set to AliveCheckRequest
  • Payload length initialized to 0
Source§

impl From<DoipHeader> for [u8; 8]

Source§

fn from(value: DoipHeader) -> Self

Converts to this type from the input type.
Source§

impl PartialEq for DoipHeader

Source§

fn eq(&self, other: &DoipHeader) -> 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 TryFrom<[u8; 8]> for DoipHeader

Source§

type Error = Error

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

fn try_from(value: [u8; 8]) -> Result<Self>

Performs the conversion.
Source§

impl StructuralPartialEq for DoipHeader

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.