Struct domain::base::message_builder::TreeCompressor

source ·
pub struct TreeCompressor<Target> { /* private fields */ }
Expand description

A domain name compressor that uses a tree.

This type wraps around an octets builder and implements domain name compression for it. It stores the position of any domain name it has seen in a binary tree.

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> TreeCompressor<Target>

source

pub fn new(target: Target) -> Self

Creates a new compressor from an underlying 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 compressor into the underlying octets builder.

source

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

Returns an octets slice of the data.

source

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

Returns an mutable octets slice of the data.

Trait Implementations§

source§

impl<Target: AsMut<[u8]>> AsMut<[u8]> for TreeCompressor<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 TreeCompressor<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 TreeCompressor<Target>

source§

fn clone(&self) -> TreeCompressor<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 TreeCompressor<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 TreeCompressor<Target>

source§

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

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

impl<Target: OctetsBuilder> OctetsBuilder for TreeCompressor<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: Composer> Truncate for TreeCompressor<Target>

source§

fn truncate(&mut self, len: usize)

Truncate the sequence to len octets. Read more

Auto Trait Implementations§

§

impl<Target> Freeze for TreeCompressor<Target>
where Target: Freeze,

§

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

§

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

§

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

§

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

§

impl<Target> UnwindSafe for TreeCompressor<Target>
where Target: 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> CloneToUninit for T
where T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. 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<Source, Target> OctetsInto<Target> for Source
where 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) -> Target
where Self::Error: Into<Infallible>,

Performs an infallible conversion.
source§

impl<T> ToOwned for T
where 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 T
where 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 T
where 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 T
where V: MultiLane<T>,

source§

fn vzip(self) -> V