Struct Extensions

Source
pub struct Extensions { /* private fields */ }
Expand description

A type map of protocol extensions.

Extensions can be used by Request and Response to store extra data derived from the underlying protocol.

Implementations§

Source§

impl Extensions

Source

pub const fn new() -> Extensions

Create an empty Extensions.

Source

pub fn insert<T: Clone + Send + Sync + 'static>(&mut self, val: T) -> Option<T>

Insert a type into this Extensions.

If a extension of this type already existed, it will be returned.

Source

pub fn maybe_insert<T: Clone + Send + Sync + 'static>( &mut self, val: Option<T>, ) -> Option<T>

Insert a type only into this Extensions, if the value is Some(T).

See Self::insert for more information.

Source

pub fn extend(&mut self, other: Extensions)

Extend these extensions with another Extensions.

Source

pub fn clear(&mut self)

Clear the Extensions of all inserted extensions.

Source

pub fn contains<T: Send + Sync + 'static>(&self) -> bool

Returns true if the Extensions contains the given type.

Source

pub fn get<T: Send + Sync + 'static>(&self) -> Option<&T>

Get a shared reference to a type previously inserted on this Extensions.

Source

pub fn get_mut<T: Send + Sync + 'static>(&mut self) -> Option<&mut T>

Get an exclusive reference to a type previously inserted on this Extensions.

Source

pub fn get_or_insert_with_ext<T: Clone + Send + Sync + 'static>( &mut self, f: impl FnOnce(&Self) -> T, ) -> &mut T

Inserts a value into the map computed from f into if it is None, then returns an exclusive reference to the contained value.

Use the cheaper Self::get_or_insert_with in case you do not need access to the extensions for the creation of T, as this function comes with an extra cost.

Source

pub fn get_or_insert_with<T: Send + Sync + Clone + 'static>( &mut self, f: impl FnOnce() -> T, ) -> &mut T

Inserts a value into the map computed from f into if it is None, then returns an exclusive reference to the contained value.

Source

pub fn get_or_insert_from<T, U>(&mut self, src: U) -> &mut T
where T: Send + Sync + Clone + 'static, U: Into<T>,

Inserts a value into the map computed by converting U into T if it is None then returns an exclusive reference to the contained value.

Source

pub fn get_or_insert<T: Clone + Send + Sync + 'static>( &mut self, fallback: T, ) -> &mut T

Retrieves a value of type T from the context.

If the value does not exist, the given value is inserted and an exclusive reference to it is returned.

Source

pub fn get_or_insert_default<T: Default + Clone + Send + Sync + 'static>( &mut self, ) -> &mut T

Get an extension or T’s Default.

see Extensions::get for more details.

Source

pub fn remove<T: Clone + Send + Sync + 'static>(&mut self) -> Option<T>

Remove a type from this Extensions.

Trait Implementations§

Source§

impl AsMut<Extensions> for RequestContextExt

Source§

fn as_mut(&mut self) -> &mut Extensions

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

impl AsRef<Extensions> for RequestContextExt

Source§

fn as_ref(&self) -> &Extensions

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

impl Clone for Extensions

Source§

fn clone(&self) -> Extensions

Returns a duplicate 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 Debug for Extensions

Source§

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

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

impl Default for Extensions

Source§

fn default() -> Extensions

Returns the “default value” for a type. Read more
Source§

impl From<Extensions> for RequestContextExt

Source§

fn from(value: Extensions) -> Self

Converts to this type from the input type.
Source§

impl From<RequestContextExt> for Extensions

Source§

fn from(value: RequestContextExt) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

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, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FutureExt for T

Source§

fn with_context(self, otel_cx: Context) -> WithContext<Self>

Attaches the provided Context to this type, returning a WithContext wrapper. Read more
Source§

fn with_current_context(self) -> WithContext<Self>

Attaches the current Context to this type, returning a WithContext wrapper. Read more
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<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