mutnet 0.7.0

Unsafe-free and allocation-free, no-std network protocol parsing and in-place manipulation library.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//! Traits to access IPv6 extensions metadata.

use crate::ipv6_extensions::{Ipv6ExtensionIndexOutOfBoundsError, Ipv6ExtensionMetadata};

pub(crate) trait Ipv6ExtMetaData<const MAX_EXTENSIONS: usize> {
    fn extensions_array(&self) -> &[Ipv6ExtensionMetadata; MAX_EXTENSIONS];
    fn extension(
        &self,
        idx: usize,
    ) -> Result<Ipv6ExtensionMetadata, Ipv6ExtensionIndexOutOfBoundsError>;
    fn extensions_amount(&self) -> usize;
}

pub(crate) trait Ipv6ExtMetaDataMut<const MAX_EXTENSIONS: usize> {
    fn extensions_array_mut(&mut self) -> &mut [Ipv6ExtensionMetadata; MAX_EXTENSIONS];
}