Trait sbd::storage::Storage [−][src]
pub trait Storage {
fn store(&mut self, message: Message) -> Result<(), Error>;
fn messages(&self) -> Result<Vec<Message>, Error>;
fn messages_from_imei(&self, imei: &str) -> Result<Vec<Message>, Error> { ... }
}
Expand description
Basic storage operations.
Required methods
Stores a message, consuming it.
Examples
let message = Message::from_path("data/0-mo.sbd").unwrap();
let mut storage = MemoryStorage::new();
storage.store(message);
Retrieves all messages in this storage as a vector.
Examples
let message = Message::from_path("data/0-mo.sbd").unwrap();
let mut storage = MemoryStorage::new();
storage.store(message.clone());
let messages = storage.messages().unwrap();
assert_eq!(vec![message], messages);
Provided methods
Retrieves all messages for a given IMEI.
The default implementation just filters the vector provided by messages
, but some
implementors could be more intelligent.
Examples
let message = Message::from_path("data/0-mo.sbd").unwrap();
let mut storage = MemoryStorage::new();
storage.store(message.clone());
let messages = storage.messages_from_imei("300234063904190").unwrap();
assert_eq!(vec![message], messages);
let messages = storage.messages_from_imei("300234063904191").unwrap();
assert!(messages.is_empty());