pub struct ResourceBroadcaster { /* private fields */ }Expand description
Wraps a tokio::sync::broadcast::Sender<ResourceSnapshot> and a
Mutex<Option<ResourceSnapshot>> that caches the most recently published
snapshot for the REST endpoint and for new subscribers that connect
between ticks.
Implementations§
Source§impl ResourceBroadcaster
impl ResourceBroadcaster
pub fn new() -> Arc<Self> ⓘ
Sourcepub fn publish(&self, snapshot: ResourceSnapshot)
pub fn publish(&self, snapshot: ResourceSnapshot)
Publish a new snapshot. Failures (no subscribers yet) are deliberately
ignored — the cache still updates, so the next GET /api/resources
call will see it.
pub fn subscribe(&self) -> Receiver<ResourceSnapshot>
Sourcepub fn latest(&self) -> Option<ResourceSnapshot>
pub fn latest(&self) -> Option<ResourceSnapshot>
Returns the most recent published snapshot. Used by GET /api/resources.
Trait Implementations§
Source§impl Clone for ResourceBroadcaster
impl Clone for ResourceBroadcaster
Source§fn clone(&self) -> ResourceBroadcaster
fn clone(&self) -> ResourceBroadcaster
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl !RefUnwindSafe for ResourceBroadcaster
impl !UnwindSafe for ResourceBroadcaster
impl Freeze for ResourceBroadcaster
impl Send for ResourceBroadcaster
impl Sync for ResourceBroadcaster
impl Unpin for ResourceBroadcaster
impl UnsafeUnpin for ResourceBroadcaster
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more