| use core::fmt; |
| |
| /// Error which occurs when popping from an empty queue. |
| #[derive(Clone, Copy, Eq, PartialEq)] |
| pub struct PopError; |
| |
| impl fmt::Debug for PopError { |
| fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { |
| "PopError".fmt(f) |
| } |
| } |
| |
| impl fmt::Display for PopError { |
| fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { |
| "popping from an empty queue".fmt(f) |
| } |
| } |
| |
| #[cfg(features = "std")] |
| impl std::error::Error for PopError { |
| fn description(&self) -> &str { |
| "popping from an empty queue" |
| } |
| } |
| |
| /// Error which occurs when pushing into a full queue. |
| #[derive(Clone, Copy, Eq, PartialEq)] |
| pub struct PushError<T>(pub T); |
| |
| impl<T> fmt::Debug for PushError<T> { |
| fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { |
| "PushError(..)".fmt(f) |
| } |
| } |
| |
| impl<T> fmt::Display for PushError<T> { |
| fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { |
| "pushing into a full queue".fmt(f) |
| } |
| } |
| |
| #[cfg(features = "std")] |
| impl<T: Send> std::error::Error for PushError<T> { |
| fn description(&self) -> &str { |
| "pushing into a full queue" |
| } |
| } |