Skip to main content

BoxEntry

Struct BoxEntry 

Source
pub struct BoxEntry(/* private fields */);
Expand description

A heap-allocated Entry wrapper that uses dynamic dispatch.

While somewhat slower than a statically-dispatched entries, an crate::EntrySink of boxed entries can be heterogeneous rather than requiring all entries to be the same type. This is especially useful for “global” background queues that will consume entries from many different components.

Implementations§

Source§

impl BoxEntry

Source

pub fn new(entry: impl Entry + Send + 'static) -> BoxEntry

Move the entry to the heap and enable dynamic dispatch.

Source

pub fn inner(&self) -> &(dyn Any + Send + 'static)

Returns a reference to the inner Entry value, which can be used with Any to extract a typed reference.

Source

pub fn inner_mut(&mut self) -> &mut (dyn Any + Send + 'static)

Returns a mutable reference to the inner Entry value, which can be used with Any to extract a typed reference.

Trait Implementations§

Source§

impl Entry for BoxEntry

Source§

fn write<'a>(&'a self, writer: &mut impl EntryWriter<'a>)

Write the metric values contained in this entry to the format-provided EntryWriter. The writer corresponds to an atomic entry written to the metrics consumer, like CloudWatch.
Source§

fn sample_group( &self, ) -> impl Iterator<Item = (Cow<'static, str>, Cow<'static, str>)>

The key used to group “similar” entries when sampling. Defaults to the empty group. Read more
Source§

fn merge<E>(self, other: E) -> Merged<Self, E>
where Self: Sized,

Create a new entry that writes all the contents of this entry and then all of the contents of other. Read more
Source§

fn merge_by_ref<'a, E>(&'a self, other: &'a E) -> MergedRef<'a, Self, E>
where E: 'a + Entry,

Like Entry::merge, but does so by reference.
Source§

fn boxed(self) -> BoxEntry
where Self: Sized + Send + 'static,

Move the entry to the heap and rely on dynamic dispatch. Read more

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

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. 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<V, F> ValueFormatter<&V> for F
where F: ValueFormatter<V> + ?Sized, V: ?Sized,

Source§

fn format_value(writer: impl ValueWriter, value: &&V)

Write value to writer
Source§

impl<V, F> ValueFormatter<Arc<V>> for F
where F: ValueFormatter<V> + ?Sized, V: ?Sized,

Source§

fn format_value(writer: impl ValueWriter, value: &Arc<V>)

Write value to writer
Source§

impl<V, F> ValueFormatter<Box<V>> for F
where F: ValueFormatter<V> + ?Sized, V: ?Sized,

Source§

fn format_value(writer: impl ValueWriter, value: &Box<V>)

Write value to writer
Source§

impl<V, F> ValueFormatter<Cow<'_, V>> for F
where V: ToOwned + ?Sized, F: ValueFormatter<V> + ?Sized,

Source§

fn format_value(writer: impl ValueWriter, value: &Cow<'_, V>)

Write value to writer
Source§

impl<V, F> ValueFormatter<Option<V>> for F
where F: ValueFormatter<V> + ?Sized,

Source§

fn format_value(writer: impl ValueWriter, value: &Option<V>)

Write value to writer
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