Struct embassy_sync::pubsub::publisher::ImmediatePublisher
source · pub struct ImmediatePublisher<'a, M: RawMutex, T: Clone, const CAP: usize, const SUBS: usize, const PUBS: usize>(/* private fields */);
Expand description
An immediate publisher that holds a generic reference to the channel
Methods from Deref<Target = ImmediatePub<'a, PubSubChannel<M, T, CAP, SUBS, PUBS>, T>>§
sourcepub fn publish_immediate(&self, message: T)
pub fn publish_immediate(&self, message: T)
Publish the message right now even when the queue is full. This may cause a subscriber to miss an older message.
sourcepub fn try_publish(&self, message: T) -> Result<(), T>
pub fn try_publish(&self, message: T) -> Result<(), T>
Publish a message if there is space in the message queue
sourcepub fn space(&self) -> usize
pub fn space(&self) -> usize
The amount of messages that can still be published without having to wait or without having to lag the subscribers
Note: In the time between checking this and a publish action, other publishers may have had time to publish something. So checking doesn’t give any guarantees.
Trait Implementations§
source§impl<'a, M: RawMutex, T: Clone, const CAP: usize, const SUBS: usize, const PUBS: usize> Deref for ImmediatePublisher<'a, M, T, CAP, SUBS, PUBS>
impl<'a, M: RawMutex, T: Clone, const CAP: usize, const SUBS: usize, const PUBS: usize> Deref for ImmediatePublisher<'a, M, T, CAP, SUBS, PUBS>
§type Target = ImmediatePub<'a, PubSubChannel<M, T, CAP, SUBS, PUBS>, T>
type Target = ImmediatePub<'a, PubSubChannel<M, T, CAP, SUBS, PUBS>, T>
The resulting type after dereferencing.
Auto Trait Implementations§
impl<'a, M, T, const CAP: usize, const SUBS: usize, const PUBS: usize> Freeze for ImmediatePublisher<'a, M, T, CAP, SUBS, PUBS>
impl<'a, M, T, const CAP: usize, const SUBS: usize, const PUBS: usize> !RefUnwindSafe for ImmediatePublisher<'a, M, T, CAP, SUBS, PUBS>
impl<'a, M, T, const CAP: usize, const SUBS: usize, const PUBS: usize> Send for ImmediatePublisher<'a, M, T, CAP, SUBS, PUBS>
impl<'a, M, T, const CAP: usize, const SUBS: usize, const PUBS: usize> Sync for ImmediatePublisher<'a, M, T, CAP, SUBS, PUBS>
impl<'a, M, T, const CAP: usize, const SUBS: usize, const PUBS: usize> Unpin for ImmediatePublisher<'a, M, T, CAP, SUBS, PUBS>where
T: Unpin,
impl<'a, M, T, const CAP: usize, const SUBS: usize, const PUBS: usize> !UnwindSafe for ImmediatePublisher<'a, M, T, CAP, SUBS, PUBS>
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