mutnet/ipv6_extensions/
metadata_trait.rs

1//! Traits to access IPv6 extensions metadata.
2
3use crate::ipv6_extensions::{Ipv6ExtensionIndexOutOfBoundsError, Ipv6ExtensionMetadata};
4
5pub(crate) trait Ipv6ExtMetaData<const MAX_EXTENSIONS: usize> {
6    fn extensions_array(&self) -> &[Ipv6ExtensionMetadata; MAX_EXTENSIONS];
7    fn extension(
8        &self,
9        idx: usize,
10    ) -> Result<Ipv6ExtensionMetadata, Ipv6ExtensionIndexOutOfBoundsError>;
11    fn extensions_amount(&self) -> usize;
12}
13
14pub(crate) trait Ipv6ExtMetaDataMut<const MAX_EXTENSIONS: usize> {
15    fn extensions_array_mut(&mut self) -> &mut [Ipv6ExtensionMetadata; MAX_EXTENSIONS];
16}