Struct embassy_sync::pubsub::publisher::Pub
source · pub struct Pub<'a, PSB: PubSubBehavior<T> + ?Sized, T: Clone> { /* private fields */ }
Expand description
A publisher to a channel
Implementations§
source§impl<'a, PSB: PubSubBehavior<T> + ?Sized, T: Clone> Pub<'a, PSB, T>
impl<'a, PSB: PubSubBehavior<T> + ?Sized, T: Clone> Pub<'a, PSB, T>
sourcepub fn publish_immediate(&self, message: T)
pub fn publish_immediate(&self, message: T)
Publish a message right now even when the queue is full. This may cause a subscriber to miss an older message.
sourcepub fn publish<'s>(&'s self, message: T) -> PublisherWaitFuture<'s, 'a, PSB, T> ⓘ
pub fn publish<'s>(&'s self, message: T) -> PublisherWaitFuture<'s, 'a, PSB, T> ⓘ
Publish a message. But if the message queue is full, wait for all subscribers to have read the last 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§
Auto Trait Implementations§
impl<'a, PSB: ?Sized, T> RefUnwindSafe for Pub<'a, PSB, T>where
PSB: RefUnwindSafe,
T: RefUnwindSafe,
impl<'a, PSB: ?Sized, T> Send for Pub<'a, PSB, T>
impl<'a, PSB: ?Sized, T> Sync for Pub<'a, PSB, T>
impl<'a, PSB: ?Sized, T> Unpin for Pub<'a, PSB, T>where
T: Unpin,
impl<'a, PSB: ?Sized, T> UnwindSafe for Pub<'a, PSB, T>where
PSB: RefUnwindSafe,
T: UnwindSafe,
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