pub struct StaticCompressor<Target> { /* private fields */ }
Expand description

A domain name compressor that doesn’t require an allocator.

This type wraps around an octets builder and implements domain name compression. It does not require an allocator but because of that it can only remember the position of up to 24 domain names. This should be sufficient for most messages.

The position of a domain name is calculated relative to the beginning of the underlying octets builder. This means that this builder must represent the message only. This means that if you are using the StreamTarget, you need to place it inside this type, not the other way around.

Implementations§

source§

impl<Target> StaticCompressor<Target>

source

pub fn new(target: Target) -> Self

Creates a static compressor from an octets builder.

source

pub fn as_target(&self) -> &Target

Returns a reference to the underlying octets builder.

source

pub fn into_target(self) -> Target

Converts the static compressor into the underlying octets builder.

source

pub fn as_slice(&self) -> &[u8] where Target: AsRef<[u8]>,

Returns a reference to the octets slice of the content.

source

pub fn as_slice_mut(&mut self) -> &mut [u8] where Target: AsMut<[u8]>,

Returns a reference to the octets slice of the content.

Trait Implementations§

source§

impl<Target: AsMut<[u8]>> AsMut<[u8]> for StaticCompressor<Target>

source§

fn as_mut(&mut self) -> &mut [u8]

Converts this type into a mutable reference of the (usually inferred) input type.
source§

impl<Target: AsRef<[u8]>> AsRef<[u8]> for StaticCompressor<Target>

source§

fn as_ref(&self) -> &[u8]

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl<Target: Clone> Clone for StaticCompressor<Target>

source§

fn clone(&self) -> StaticCompressor<Target>

Returns a copy 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<Target: Composer> Composer for StaticCompressor<Target>

source§

fn append_compressed_dname<N: ToDname + ?Sized>( &mut self, name: &N ) -> Result<(), Self::AppendError>

Appends a domain name using name compression if supported. Read more
source§

fn can_compress(&self) -> bool

source§

impl<Target: Debug> Debug for StaticCompressor<Target>

source§

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

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

impl<Target: OctetsBuilder> OctetsBuilder for StaticCompressor<Target>

§

type AppendError = <Target as OctetsBuilder>::AppendError

The error type when appending data fails. Read more
source§

fn append_slice(&mut self, slice: &[u8]) -> Result<(), Self::AppendError>

Appends the content of a slice to the builder. Read more
source§

impl<Target: Truncate> Truncate for StaticCompressor<Target>

source§

fn truncate(&mut self, len: usize)

Truncate the sequence to len octets. Read more

Auto Trait Implementations§

§

impl<Target> RefUnwindSafe for StaticCompressor<Target>where Target: RefUnwindSafe,

§

impl<Target> Send for StaticCompressor<Target>where Target: Send,

§

impl<Target> Sync for StaticCompressor<Target>where Target: Sync,

§

impl<Target> Unpin for StaticCompressor<Target>where Target: Unpin,

§

impl<Target> UnwindSafe for StaticCompressor<Target>where Target: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere 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 Twhere 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<Source, Target> OctetsInto<Target> for Sourcewhere Target: OctetsFrom<Source>,

§

type Error = <Target as OctetsFrom<Source>>::Error

source§

fn try_octets_into( self ) -> Result<Target, <Source as OctetsInto<Target>>::Error>

Performs the conversion.
source§

fn octets_into(self) -> Targetwhere Self::Error: Into<Infallible>,

Performs an infallible conversion.
source§

impl<T> ToOwned for Twhere T: Clone,

§

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 Twhere U: Into<T>,

§

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 Twhere U: TryFrom<T>,

§

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

impl<V, T> VZip<V> for Twhere V: MultiLane<T>,

source§

fn vzip(self) -> V