use std::fmt::Debug;
use std::fmt::Formatter;
use std::fmt::Result as FmtResult;
use crate::write::AsyncFileWriter;
use crate::write::RejectedAsyncWriter;
#[must_use]
pub enum AsyncWriterRecovery {
Opened(Box<AsyncFileWriter>),
Rejected(RejectedAsyncWriter),
}
impl AsyncWriterRecovery {
pub(crate) fn opened(&self) -> Option<&AsyncFileWriter> {
match self {
Self::Opened(writer) => Some(writer),
Self::Rejected(_) => None,
}
}
pub(crate) fn opened_mut(&mut self) -> Option<&mut AsyncFileWriter> {
match self {
Self::Opened(writer) => Some(writer),
Self::Rejected(_) => None,
}
}
}
impl Debug for AsyncWriterRecovery {
fn fmt(&self, formatter: &mut Formatter<'_>) -> FmtResult {
formatter.write_str(match self {
Self::Opened(_) => "AsyncWriterRecovery::Opened",
Self::Rejected(_) => "AsyncWriterRecovery::Rejected",
})
}
}