diesel::connection

Trait Instrumentation

Source
pub trait Instrumentation:
    Downcast
    + Send
    + 'static {
    // Required method
    fn on_connection_event(&mut self, event: InstrumentationEvent<'_>);
}
Expand description

A type that provides an connection Instrumentation

This trait is the basic building block for logging or otherwise instrumenting diesel connection types. It acts as callback that receives information about certain important connection states

For simple usages this trait is implemented for closures accepting a InstrumentationEvent as argument.

More complex usages and integrations with frameworks like tracing and log are supposed to be part of their own crates.

Required Methods§

Source

fn on_connection_event(&mut self, event: InstrumentationEvent<'_>)

The function that is invoked for each event

Implementations§

Source§

impl dyn Instrumentation

Source

pub fn is<__T: Instrumentation>(&self) -> bool

Returns true if the trait object wraps an object of type __T.

Source

pub fn downcast<__T: Instrumentation>( self: Box<Self>, ) -> Result<Box<__T>, Box<Self>>

Returns a boxed object from a boxed trait object if the underlying object is of type __T. Returns the original boxed trait if it isn’t.

Source

pub fn downcast_rc<__T: Instrumentation>( self: Rc<Self>, ) -> Result<Rc<__T>, Rc<Self>>

Returns an Rc-ed object from an Rc-ed trait object if the underlying object is of type __T. Returns the original Rc-ed trait if it isn’t.

Source

pub fn downcast_ref<__T: Instrumentation>(&self) -> Option<&__T>

Returns a reference to the object within the trait object if it is of type __T, or None if it isn’t.

Source

pub fn downcast_mut<__T: Instrumentation>(&mut self) -> Option<&mut __T>

Returns a mutable reference to the object within the trait object if it is of type __T, or None if it isn’t.

Trait Implementations§

Source§

impl Instrumentation for Box<dyn Instrumentation>

Source§

fn on_connection_event(&mut self, event: InstrumentationEvent<'_>)

The function that is invoked for each event

Implementations on Foreign Types§

Source§

impl Instrumentation for Box<dyn Instrumentation>

Source§

impl<T> Instrumentation for Option<T>
where T: Instrumentation,

Implementors§

Source§

impl<F> Instrumentation for F
where F: FnMut(InstrumentationEvent<'_>) + Send + 'static,