Struct metrix::cockpit::Cockpit[][src]

pub struct Cockpit<L> { /* fields omitted */ }

A cockpit groups panels.

Use a cockpit to group panels that are somehow related. Since the Cockpit is generic over its label you can use an enum as a label for grouping panels easily.

Implementations

impl<L> Cockpit<L> where
    L: Clone + Eq + Send + 'static, 
[src]

pub fn new<T: Into<String>>(name: T) -> Cockpit<L>[src]

Creates a new instance.

Even though the name is optional it is suggested to use a name for a cockpit since in most cases a Cockpit is a meaningful grouping for panels and instruments.

pub fn without_name() -> Cockpit<L>[src]

Creates a new Cockpit without a name.

This will have the effect that there will be no grouping in the snapshot around the contained components.

pub fn get_name(&self) -> Option<&str>[src]

Returns the name of this cockpit.

If there is a name set, this will group the inner components in the snapshot.

pub fn set_name<T: Into<String>>(&mut self, name: T)[src]

Sets a name for this Cockpit. This will also enable grouping.

pub fn set_title<T: Into<String>>(&mut self, title: T)[src]

Sets the title which will be displayed if a descriptive snapshot is requested.

pub fn set_description<T: Into<String>>(&mut self, description: T)[src]

Sets the description which will be displayed if a descriptive snapshot is requested.

pub fn set_inactivity_limit(&mut self, limit: Duration)[src]

Sets the maximum amount of time this cockpit may be inactive until no more snapshots are taken

pub fn set_show_activity_state(&mut self, show: bool)[src]

Set whether to show if the cockpit is inactive or not if inactivity_limit is set.

The default is true. Only has an effect if a inactivity_limit is set.

pub fn show_activity_state(self, show: bool) -> Self[src]

Set whether to show if the cockpit is inactive or not if inactivity_limit is set.

The default is true. Only has an effect if a inactivity_limit is set.

pub fn add_panel(&mut self, panel: Panel<L>)[src]

Add a Panel to this cockpit.

A Panel will receive only those Observations where labels match.

There can not be multiple Panels for the same name. If one already exists, the new one will not be added.

pub fn remove_panel<T: AsRef<str>>(&mut self, name: T)[src]

Removes a Panel from this cockpit.

Removes the Panel with the given name from this cockpit a a Panel with the given name exists

pub fn panel(self, panel: Panel<L>) -> Self[src]

Add a Panel to this cockpit.

A Panel will receive only those Observations where labels match.

There can be multiple Panels for the same label.

pub fn get_panels(&self) -> Vec<&Panel<L>>[src]

Returns the Panels

pub fn get_panels_mut(&mut self) -> Vec<&mut Panel<L>>[src]

Returns the Panels mutable

pub fn add_handler<T>(&mut self, handler: T) where
    T: HandlesObservations<Label = L>, 
[src]

Add a handler. This can be custom logic for metrics.

A handler will be passed all Observations unlike a Panel which will only receive Observations where the label matches.

pub fn get_handlers(&self) -> Vec<&dyn HandlesObservations<Label = L>>[src]

Returns all the handlers.

pub fn handler<H: HandlesObservations<Label = L>>(self, handler: H) -> Self[src]

pub fn add_snapshooter<T: PutsSnapshot>(&mut self, snapshooter: T)[src]

Adds a snapshooter.

A snapshooter will only be invoked when a Snapshot is requested. It will never receive an Observation.

pub fn snapshooter<T: PutsSnapshot>(self, snapshooter: T) -> Self[src]

Adds a snapshooter.

A snapshooter will only be invoked when a Snapshot is requested. It will never receive an Observation.

pub fn get_snapshooters(&self) -> Vec<&dyn PutsSnapshot>[src]

Returns all snapshooters.

Trait Implementations

impl<L> Default for Cockpit<L> where
    L: Clone + Eq + Send + 'static, 
[src]

impl<L> Descriptive for Cockpit<L>[src]

impl<L> HandlesObservations for Cockpit<L> where
    L: Clone + Eq + Send + 'static, 
[src]

type Label = L

impl<L> PutsSnapshot for Cockpit<L> where
    L: Clone + Eq + Send + 'static, 
[src]

Auto Trait Implementations

impl<L> !RefUnwindSafe for Cockpit<L>

impl<L> Send for Cockpit<L> where
    L: Send

impl<L> !Sync for Cockpit<L>

impl<L> Unpin for Cockpit<L> where
    L: Unpin

impl<L> !UnwindSafe for Cockpit<L>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

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