packet_formats::ethernet

Struct EthernetFrame

Source
pub struct EthernetFrame<B> { /* private fields */ }
Expand description

An Ethernet frame.

An EthernetFrame shares its underlying memory with the byte slice it was parsed from or serialized to, meaning that no copying or extra allocation is necessary.

Implementations§

Source§

impl<B: SplitByteSlice> EthernetFrame<B>

Source

pub fn body(&self) -> &[u8]

The frame body.

Source

pub fn into_body(self) -> B
where B: Copy,

Consumes the frame and returns the body.

Source

pub fn src_mac(&self) -> Mac

The source MAC address.

Source

pub fn dst_mac(&self) -> Mac

The destination MAC address.

Source

pub fn ethertype(&self) -> Option<EtherType>

The EtherType.

ethertype returns the EtherType from the Ethernet header. However, some values of the EtherType header field are used to indicate the length of the frame’s body. In this case, ethertype returns None.

Source

pub fn builder(&self) -> EthernetFrameBuilder

Construct a builder with the same contents as this frame.

Trait Implementations§

Source§

impl<B: SplitByteSlice> ParsablePacket<B, EthernetFrameLengthCheck> for EthernetFrame<B>

Source§

type Error = ParseError

The type of errors returned from parse and parse_mut.
Source§

fn parse_metadata(&self) -> ParseMetadata

Gets metadata about this packet required by [GrowBuffer::undo_parse]. Read more
Source§

fn parse<BV: BufferView<B>>( buffer: BV, length_check: EthernetFrameLengthCheck, ) -> ParseResult<Self>

Parses a packet from a buffer. Read more
§

fn parse_mut<BV>(buffer: BV, args: ParseArgs) -> Result<Self, Self::Error>
where BV: BufferViewMut<B>, B: SplitByteSliceMut,

Parses a packet from a mutable buffer. Read more

Auto Trait Implementations§

§

impl<B> Freeze for EthernetFrame<B>
where B: Freeze,

§

impl<B> RefUnwindSafe for EthernetFrame<B>
where B: RefUnwindSafe,

§

impl<B> Send for EthernetFrame<B>
where B: Send,

§

impl<B> Sync for EthernetFrame<B>
where B: Sync,

§

impl<B> Unpin for EthernetFrame<B>
where B: Unpin,

§

impl<B> UnwindSafe for EthernetFrame<B>
where B: UnwindSafe,

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