domain::base::message_builder

Struct StaticCompressor

source
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_name<N: ToName + ?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: FreezeBuilder> FreezeBuilder for StaticCompressor<Target>

source§

type Octets = <Target as FreezeBuilder>::Octets

The type of octets sequence to builder will be frozen into.
source§

fn freeze(self) -> Self::Octets

Converts the octets builder into an immutable octets sequence.
source§

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

source§

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> Freeze for StaticCompressor<Target>
where Target: Freeze,

§

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

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> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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>,

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> Pointable for T

source§

const ALIGN: usize = _

The alignment of pointer.
source§

type Init = T

The type for initializers.
source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T> ToOwned for T
where T: Clone,

source§

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>,

source§

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>,

source§

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

source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more