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

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());

Implementors