tracing_subscriber::registry

Struct ExtensionsMut

Source
pub struct ExtensionsMut<'a> { /* private fields */ }
Available on crate feature std only.
Expand description

An mutable reference to a Span’s extensions.

Implementations§

Source§

impl<'a> ExtensionsMut<'a>

Source

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

Insert a type into this Extensions.

Note that extensions are not Layer-specific—they are span-specific. This means that other layers can access and mutate extensions that a different Layer recorded. For example, an application might have a layer that records execution timings, alongside a layer that reports spans and events to a distributed tracing system that requires timestamps for spans. Ideally, if one layer records a timestamp x, the other layer should be able to reuse timestamp x.

Therefore, extensions should generally be newtypes, rather than common types like String, to avoid accidental cross-Layer clobbering.

§Panics

If T is already present in Extensions, then this method will panic.

Source

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

Replaces an existing T into this extensions.

If T is not present, Option::None will be returned.

Source

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

Get a mutable reference to a type previously inserted on this ExtensionsMut.

Source

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

Remove a type from this Extensions.

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

Trait Implementations§

Source§

impl<'a> Debug for ExtensionsMut<'a>

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'a> Freeze for ExtensionsMut<'a>

§

impl<'a> RefUnwindSafe for ExtensionsMut<'a>

§

impl<'a> !Send for ExtensionsMut<'a>

§

impl<'a> Sync for ExtensionsMut<'a>

§

impl<'a> Unpin for ExtensionsMut<'a>

§

impl<'a> UnwindSafe for ExtensionsMut<'a>

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

Layout§

Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.

Size: 16 bytes