Trait sbd::storage::Storage
[−]
[src]
pub trait Storage { fn store(&mut self, message: Message) -> Result<()>; fn messages(&self) -> Result<Vec<Message>>; fn messages_from_imei(&self, imei: &str) -> Result<Vec<Message>> { ... } }
Basic storage operations.
Required Methods
fn store(&mut self, message: Message) -> Result<()>
Stores a message, consuming it.
Examples
let message = Message::from_path("data/0-mo.sbd").unwrap(); let mut storage = MemoryStorage::new(); storage.store(message);
fn messages(&self) -> Result<Vec<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
fn messages_from_imei(&self, imei: &str) -> Result<Vec<Message>>
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());
Implementors
impl Storage for sbd::storage::FilesystemStorage
impl Storage for sbd::storage::MemoryStorage