Added convenience methods that ignore lag
This commit is contained in:
parent
790426e2f6
commit
f92f46f489
@ -274,6 +274,16 @@ impl<'a, T: Clone> Subscriber<'a, T> {
|
|||||||
SubscriberWaitFuture { subscriber: self }
|
SubscriberWaitFuture { subscriber: self }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Wait for a published message (ignoring lag results)
|
||||||
|
pub async fn next_message_pure(&mut self) -> T {
|
||||||
|
loop {
|
||||||
|
match self.next_message().await {
|
||||||
|
WaitResult::Lagged(_) => continue,
|
||||||
|
WaitResult::Message(message) => break message,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// Try to see if there's a published message we haven't received yet.
|
/// Try to see if there's a published message we haven't received yet.
|
||||||
///
|
///
|
||||||
/// This function does not peek. The message is received if there is one.
|
/// This function does not peek. The message is received if there is one.
|
||||||
@ -289,6 +299,19 @@ impl<'a, T: Clone> Subscriber<'a, T> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Try to see if there's a published message we haven't received yet (ignoring lag results).
|
||||||
|
///
|
||||||
|
/// This function does not peek. The message is received if there is one.
|
||||||
|
pub fn try_next_message_pure(&mut self) -> Option<T> {
|
||||||
|
loop {
|
||||||
|
match self.try_next_message() {
|
||||||
|
Some(WaitResult::Lagged(_)) => continue,
|
||||||
|
Some(WaitResult::Message(message)) => break Some(message),
|
||||||
|
None => break None,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a, T: Clone> Drop for Subscriber<'a, T> {
|
impl<'a, T: Clone> Drop for Subscriber<'a, T> {
|
||||||
|
Loading…
Reference in New Issue
Block a user