pub struct CompositeObserver { /* private fields */ }Expand description
Fans every signal out to several observers, in registration order.
use std::sync::Arc;
use turnframe_core::observe::{Observer, Signal};
use turnframe_telemetry::{CompositeObserver, MetricsObserver, RecordingObserver};
let recorder = Arc::new(RecordingObserver::new());
let observer = CompositeObserver::new()
.with(MetricsObserver::new())
.with_shared(Arc::clone(&recorder));
observer.observe(&Signal::TurnReceived);
assert_eq!(recorder.count(Signal::TurnReceived), 1);Implementations§
Source§impl CompositeObserver
impl CompositeObserver
Sourcepub fn with(self, observer: impl Observer + 'static) -> Self
pub fn with(self, observer: impl Observer + 'static) -> Self
Adds an observer, taking ownership of it.
Adds an observer the caller keeps a handle to, which is what a test
needs in order to inspect a RecordingObserver afterwards.
Generic over the concrete observer so Arc::clone(&handle) can be
passed straight in; use CompositeObserver::push for a handle that is
already erased to Arc<dyn Observer>.
Trait Implementations§
Source§impl Clone for CompositeObserver
impl Clone for CompositeObserver
Source§impl Debug for CompositeObserver
impl Debug for CompositeObserver
Source§impl Default for CompositeObserver
impl Default for CompositeObserver
Source§impl Observer for CompositeObserver
impl Observer for CompositeObserver
Source§fn observe_labeled(&self, signal: &Signal, labels: &SignalLabels)
fn observe_labeled(&self, signal: &Signal, labels: &SignalLabels)
Observes a signal with labels. The default drops the labels.
Source§fn observe_duration(
&self,
signal: &Signal,
duration: Duration,
labels: &SignalLabels,
)
fn observe_duration( &self, signal: &Signal, duration: Duration, labels: &SignalLabels, )
Observes a duration signal (
SignalKind::DurationMillis or
SignalKind::DurationMicros) with its measured value. The default
drops the value and forwards to Observer::observe_labeled.Auto Trait Implementations§
impl !RefUnwindSafe for CompositeObserver
impl !UnwindSafe for CompositeObserver
impl Freeze for CompositeObserver
impl Send for CompositeObserver
impl Sync for CompositeObserver
impl Unpin for CompositeObserver
impl UnsafeUnpin for CompositeObserver
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more