[−][src]Trait spartan_lib::core::dispatcher::StatusAwareDispatcher
Interface for working with databases that support statuses
Required methods
pub fn pop(&mut self) -> Option<&M>
[src]
Pop message from queue
Behaves like "peek", but with "obtainable" message check, message and database reservation
use spartan_lib::core::dispatcher::{SimpleDispatcher, StatusAwareDispatcher}; use spartan_lib::core::db::TreeDatabase; use spartan_lib::core::message::builder::MessageBuilder; use spartan_lib::core::payload::Identifiable; let mut db = TreeDatabase::default(); let message = MessageBuilder::default().body("Hello, world").compose().unwrap(); db.push(message.clone()); assert_eq!(db.pop().unwrap().id(), message.id());
pub fn requeue(&mut self, id: <M as Identifiable>::Id) -> Option<()>
[src]
Requeue message in queue
Returns None, if message was not found, or message cannot be requeued
use spartan_lib::core::dispatcher::{SimpleDispatcher, StatusAwareDispatcher}; use spartan_lib::core::db::TreeDatabase; use spartan_lib::core::message::builder::MessageBuilder; use spartan_lib::core::payload::Identifiable; let mut db = TreeDatabase::default(); let message = MessageBuilder::default().body("Hello, world").compose().unwrap(); db.push(message); let id = db.pop().unwrap().id(); db.requeue(id).unwrap();
Implementors
impl<T, M> StatusAwareDispatcher<M> for T where
T: SimpleDispatcher<M> + StatusAwareDatabase<M, RequeueKey = <M as Identifiable>::Id>,
M: Status,
[src]
T: SimpleDispatcher<M> + StatusAwareDatabase<M, RequeueKey = <M as Identifiable>::Id>,
M: Status,