HeaderLen

Trait HeaderLen 

Source
pub trait HeaderLen {
    const MINIMUM_LENGTH: usize;

    // Required method
    fn packet_length(&self) -> usize;
}
Expand description

Base trait for header/packet types.

Required Associated Constants§

Source

const MINIMUM_LENGTH: usize

The minimum number of bytes a packet of this kind occupies when serialised.

Required Methods§

Source

fn packet_length(&self) -> usize

The number of bytes which this packet would occupy when serialised.

This should always return a value greater than or equal to Header::MINIMUM_LENGTH.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl HeaderLen for &[u8]

Source§

impl<H: HeaderLen> HeaderLen for &H

Source§

const MINIMUM_LENGTH: usize = H::MINIMUM_LENGTH

Source§

fn packet_length(&self) -> usize

Source§

impl<T0> HeaderLen for (T0,)
where T0: HeaderLen,

Source§

impl<T0, T1> HeaderLen for (T0, T1)
where T0: HeaderLen, T1: HeaderLen,

Source§

impl<T0, T1, T2> HeaderLen for (T0, T1, T2)
where T0: HeaderLen, T1: HeaderLen, T2: HeaderLen,

Source§

impl<T0, T1, T2, T3> HeaderLen for (T0, T1, T2, T3)
where T0: HeaderLen, T1: HeaderLen, T2: HeaderLen, T3: HeaderLen,

Source§

impl<T0, T1, T2, T3, T4> HeaderLen for (T0, T1, T2, T3, T4)
where T0: HeaderLen, T1: HeaderLen, T2: HeaderLen, T3: HeaderLen, T4: HeaderLen,

Source§

impl<T0, T1, T2, T3, T4, T5> HeaderLen for (T0, T1, T2, T3, T4, T5)
where T0: HeaderLen, T1: HeaderLen, T2: HeaderLen, T3: HeaderLen, T4: HeaderLen, T5: HeaderLen,

Source§

impl<T0, T1, T2, T3, T4, T5, T6> HeaderLen for (T0, T1, T2, T3, T4, T5, T6)
where T0: HeaderLen, T1: HeaderLen, T2: HeaderLen, T3: HeaderLen, T4: HeaderLen, T5: HeaderLen, T6: HeaderLen,

Source§

impl<T0, T1, T2, T3, T4, T5, T6, T7> HeaderLen for (T0, T1, T2, T3, T4, T5, T6, T7)
where T0: HeaderLen, T1: HeaderLen, T2: HeaderLen, T3: HeaderLen, T4: HeaderLen, T5: HeaderLen, T6: HeaderLen, T7: HeaderLen,

Source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> HeaderLen for (T0, T1, T2, T3, T4, T5, T6, T7, T8)
where T0: HeaderLen, T1: HeaderLen, T2: HeaderLen, T3: HeaderLen, T4: HeaderLen, T5: HeaderLen, T6: HeaderLen, T7: HeaderLen, T8: HeaderLen,

Source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> HeaderLen for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)
where T0: HeaderLen, T1: HeaderLen, T2: HeaderLen, T3: HeaderLen, T4: HeaderLen, T5: HeaderLen, T6: HeaderLen, T7: HeaderLen, T8: HeaderLen, T9: HeaderLen,

Source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> HeaderLen for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)
where T0: HeaderLen, T1: HeaderLen, T2: HeaderLen, T3: HeaderLen, T4: HeaderLen, T5: HeaderLen, T6: HeaderLen, T7: HeaderLen, T8: HeaderLen, T9: HeaderLen, T10: HeaderLen,

Source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> HeaderLen for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)
where T0: HeaderLen, T1: HeaderLen, T2: HeaderLen, T3: HeaderLen, T4: HeaderLen, T5: HeaderLen, T6: HeaderLen, T7: HeaderLen, T8: HeaderLen, T9: HeaderLen, T10: HeaderLen, T11: HeaderLen,

Source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> HeaderLen for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12)
where T0: HeaderLen, T1: HeaderLen, T2: HeaderLen, T3: HeaderLen, T4: HeaderLen, T5: HeaderLen, T6: HeaderLen, T7: HeaderLen, T8: HeaderLen, T9: HeaderLen, T10: HeaderLen, T11: HeaderLen, T12: HeaderLen,

Source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> HeaderLen for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13)
where T0: HeaderLen, T1: HeaderLen, T2: HeaderLen, T3: HeaderLen, T4: HeaderLen, T5: HeaderLen, T6: HeaderLen, T7: HeaderLen, T8: HeaderLen, T9: HeaderLen, T10: HeaderLen, T11: HeaderLen, T12: HeaderLen, T13: HeaderLen,

Source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> HeaderLen for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14)
where T0: HeaderLen, T1: HeaderLen, T2: HeaderLen, T3: HeaderLen, T4: HeaderLen, T5: HeaderLen, T6: HeaderLen, T7: HeaderLen, T8: HeaderLen, T9: HeaderLen, T10: HeaderLen, T11: HeaderLen, T12: HeaderLen, T13: HeaderLen, T14: HeaderLen,

Source§

impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> HeaderLen for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15)
where T0: HeaderLen, T1: HeaderLen, T2: HeaderLen, T3: HeaderLen, T4: HeaderLen, T5: HeaderLen, T6: HeaderLen, T7: HeaderLen, T8: HeaderLen, T9: HeaderLen, T10: HeaderLen, T11: HeaderLen, T12: HeaderLen, T13: HeaderLen, T14: HeaderLen, T15: HeaderLen,

Source§

impl<T: HeaderLen> HeaderLen for Option<T>

Implementors§

Source§

impl HeaderLen for Ipv4Addr

Source§

impl HeaderLen for Ipv6Addr

Source§

const MINIMUM_LENGTH: usize = 16usize

Source§

impl HeaderLen for Vec<u8>

Source§

impl<B: ByteSlice> HeaderLen for RawBytes<B>

Source§

impl<B: ByteSlice, T: HeaderLen + NextLayer + HasView<B>> HeaderLen for RepeatedView<B, T>

Source§

impl<B: ByteSlice, V> HeaderLen for ObjectSlice<B, V>

Source§

impl<O, B> HeaderLen for BoxedHeader<O, B>
where O: HeaderLen, B: HeaderLen,

Available on crate feature alloc only.
Source§

const MINIMUM_LENGTH: usize = O::MINIMUM_LENGTH

Source§

impl<O, B> HeaderLen for InlineHeader<O, B>
where O: HeaderLen, B: HeaderLen,

Source§

const MINIMUM_LENGTH: usize = O::MINIMUM_LENGTH

Source§

impl<T: HeaderLen + HasView<V>, V> HeaderLen for FieldMut<'_, T, V>
where T::ViewType: HeaderLen,

Source§

const MINIMUM_LENGTH: usize = T::MINIMUM_LENGTH

Source§

impl<T: HeaderLen + HasView<V>, V> HeaderLen for FieldRef<'_, T, V>
where T::ViewType: HeaderLen,

Source§

const MINIMUM_LENGTH: usize = T::MINIMUM_LENGTH

Source§

impl<T: HeaderLen> HeaderLen for Vec<T>

Source§

impl<T: HeaderLen> HeaderLen for Repeated<T>