Enum Instruments

Source
#[repr(usize)]
pub enum Instruments { NoInstruments = 0, LogsWithoutMetrics = 32, LogsWithMetrics = 103, LogsWithExpensiveMetrics = 107, MetricsWithoutLogs = 7, ExpensiveMetricsWithoutLogs = 11, Custom(usize), }
Expand description

Honors the Zero-Cost Instrumentation Pattern for the [stream_executors]:
Designed to be used as a const generic parameter for Structs, causes the conditional instrumentation code in client structs to be selectively compiled – see the implemented const methods for documentation of each available instrument.

Note: Using this enum directly in generics – as in struct S<const INSTUMENTS: Instruments = { Instruments::NoInstruments }> {...} – is not possible yet (as of Rust 1.64): “adt const params is experimental [E0658]”, so we’ll use it as struct S<const INSTRUMENTS: usize = 0> instead, and use [Instruments::from(INSTRUMENTS)] in the instrumentable implementations & let s = S::<Instruments::<YourOption>::into()> {}; in clients.

Variants§

§

NoInstruments = 0

No conditional instrumentation code will be included – bringing in the fastest possible execution speeds at the expense of lowest operational control

§

LogsWithoutMetrics = 32

§

LogsWithMetrics = 103

§

LogsWithExpensiveMetrics = 107

§

MetricsWithoutLogs = 7

§

ExpensiveMetricsWithoutLogs = 11

§

Custom(usize)

Implementations§

Source§

impl Instruments

Source

pub const fn from(instruments: usize) -> Self

To be used in if conditions, returns the enum variant that corresponds to the given const generic numeric value as described in Self

Source

pub const fn into(self) -> usize

designed to be used by clients of the implementor structs, returns the number to be used as a const generic numeric value (when instantiating the implementor struct) that corresponds to the given enum variant

Source

pub const fn logging(self) -> bool

returns whether executors should log start/stop in the INFO level OR events TRACING

Source

pub const fn tracing(self) -> bool

returns whether executors should log events in the TRACING level

Source

pub const fn cheap_profiling(self) -> bool

returns whether executors should compute the CHEAP_PROFILING metrics

Source

pub const fn metrics(self) -> bool

returns whether executors should compute any of the available metrics

Trait Implementations§

Source§

impl Clone for Instruments

Source§

fn clone(&self) -> Instruments

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 Instruments

Source§

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

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

impl PartialEq for Instruments

Source§

fn eq(&self, other: &Instruments) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for Instruments

Source§

impl StructuralPartialEq for Instruments

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, 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> 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> Erased for T