pub struct ExtensionsMut<'a> { /* private fields */ }
std
only.Expand description
An mutable reference to a Span’s extensions.
Implementations§
Source§impl<'a> ExtensionsMut<'a>
impl<'a> ExtensionsMut<'a>
Sourcepub fn insert<T: Send + Sync + 'static>(&mut self, val: T)
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.
Sourcepub fn replace<T: Send + Sync + 'static>(&mut self, val: T) -> Option<T> ⓘ
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.
Trait Implementations§
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> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
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