mod filesystem;
mod memory;
pub use self::{filesystem::Storage as FilesystemStorage, memory::Storage as MemoryStorage};
use crate::{mo::Message, Error};
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> {
self.messages().map(|mut v| {
v.retain(|m| m.imei() == imei);
v
})
}
}