use core::fmt;
use core::fmt::Display;
#[derive(Debug)]
pub enum TakeError {
PendingFilling,
AlreadyTaken,
KernelOwns,
Returned,
OnlyOneTakeable,
}
impl Display for TakeError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
Self::PendingFilling => write!(f, "Pending filling by the user."),
Self::AlreadyTaken => write!(f, "Kernel owns, cannot take."),
Self::KernelOwns => write!(
f,
"Kernel owns the buffer. Must be claered for re-use first."
),
Self::Returned => write!(f, "Markerd as returnd but not marked for re-use."),
Self::OnlyOneTakeable => write!(
f,
"Cannot take multi-buffer-holder, requires one single buffer."
),
}
}
}
impl std::error::Error for TakeError {}