1use core::fmt;
4use core::fmt::Display;
5
6#[derive(Debug)]
8pub enum TakeError {
9 PendingFilling,
11 AlreadyTaken,
13 KernelOwns,
15 Returned,
17 OnlyOneTakeable,
19}
20
21impl Display for TakeError {
22 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
23 match self {
24 Self::PendingFilling => write!(f, "Pending filling by the user."),
25 Self::AlreadyTaken => write!(f, "Kernel owns, cannot take."),
26 Self::KernelOwns => write!(
27 f,
28 "Kernel owns the buffer. Must be claered for re-use first."
29 ),
30 Self::Returned => write!(f, "Markerd as returnd but not marked for re-use."),
31 Self::OnlyOneTakeable => write!(
32 f,
33 "Cannot take multi-buffer-holder, requires one single buffer."
34 ),
35 }
36 }
37}
38
39impl std::error::Error for TakeError {}