use crate::fs::traits::unblocker::Unblocker;
use crate::fs::{BlockResult, LogFSError};
use std::sync::mpsc::Sender;
#[derive(Debug, Clone)]
pub struct SyncUnblocker {
inner: Sender<BlockResult>,
}
impl SyncUnblocker {
pub fn new(sender: Sender<BlockResult>) -> Self {
Self { inner: sender }
}
}
impl Unblocker for SyncUnblocker {
fn unblock(&self, result: BlockResult) -> BlockResult {
self.inner
.send(result)
.map_err(|_| LogFSError::FailedToUnblock)?;
Ok(())
}
}