emit::setup

Struct Init

Source
pub struct Init<'a, TEmitter: Emitter + ?Sized = DefaultEmitter, TCtxt: Ctxt + ?Sized = DefaultCtxt> { /* private fields */ }
Expand description

The result of calling Setup::init.

This type is a handle to an initialized runtime that can be used to ensure it’s fully flushed with a call to Init::blocking_flush before your application exits.

Implementations§

Source§

impl<'a, TEmitter: Emitter + ?Sized, TCtxt: Ctxt + ?Sized> Init<'a, TEmitter, TCtxt>

Source

pub fn emitter(&self) -> &'a TEmitter

Get a reference to the initialized Emitter.

Source

pub fn ctxt(&self) -> &'a TCtxt

Get a reference to the initialized Ctxt.

Source

pub fn get(&self) -> &'a AmbientRuntime<'a>

Get the underlying runtime that was initialized.

Source

pub fn blocking_flush(&self, timeout: Duration) -> bool

Flush the runtime, ensuring all diagnostic events are fully processed.

This method forwards to Emitter::blocking_flush, which has details on how the timeout is handled.

Source

pub fn flush_on_drop(self, timeout: Duration) -> InitGuard<'a, TEmitter, TCtxt>

Flush the runtime when the returned guard is dropped, ensuring all diagnostic events are fully processed.

This method forwards to Emitter::blocking_flush, which has details on how the timeout is handled.

Important: Ensure you bind an identifier to this method, otherwise it will be immediately dropped instead of at the end of your main:

fn main() {
    // Use an ident like `_guard`, not `_`
    let _guard = emit::setup().init().flush_on_drop(Duration::from_secs(5));

    // Your code goes here
}

Auto Trait Implementations§

§

impl<'a, TEmitter, TCtxt> Freeze for Init<'a, TEmitter, TCtxt>
where TEmitter: ?Sized, TCtxt: ?Sized,

§

impl<'a, TEmitter = Empty, TCtxt = ThreadLocalCtxt> !RefUnwindSafe for Init<'a, TEmitter, TCtxt>

§

impl<'a, TEmitter, TCtxt> Send for Init<'a, TEmitter, TCtxt>
where TEmitter: Sync + ?Sized, TCtxt: Sync + ?Sized,

§

impl<'a, TEmitter, TCtxt> Sync for Init<'a, TEmitter, TCtxt>
where TEmitter: Sync + ?Sized, TCtxt: Sync + ?Sized,

§

impl<'a, TEmitter, TCtxt> Unpin for Init<'a, TEmitter, TCtxt>
where TEmitter: ?Sized, TCtxt: ?Sized,

§

impl<'a, TEmitter = Empty, TCtxt = ThreadLocalCtxt> !UnwindSafe for Init<'a, TEmitter, TCtxt>

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

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V