use crate::email::EmailSnapshot;
use std::sync::{Arc, Mutex};
#[derive(Clone, Default)]
pub struct FakeMail {
inner: Arc<Mutex<Vec<EmailSnapshot>>>,
}
impl FakeMail {
pub fn new() -> Self {
Self::default()
}
pub(crate) fn record(&self, snap: EmailSnapshot) {
self.inner.lock().unwrap().push(snap);
}
pub fn sent(&self) -> Vec<EmailSnapshot> {
self.inner.lock().unwrap().clone()
}
pub fn clear(&self) {
self.inner.lock().unwrap().clear();
}
pub fn len(&self) -> usize {
self.inner.lock().unwrap().len()
}
pub fn is_empty(&self) -> bool {
self.len() == 0
}
}