50 lines
1.2 KiB
Rust
50 lines
1.2 KiB
Rust
|
use core::fmt::{Display, Formatter};
|
||
|
#[cfg(feature = "std")]
|
||
|
use std::error::Error;
|
||
|
|
||
|
/// Generic error type for sending something via a message queue.
|
||
|
#[derive(Debug, Copy, Clone)]
|
||
|
pub enum GenericSendError {
|
||
|
RxDisconnected,
|
||
|
QueueFull(Option<u32>),
|
||
|
}
|
||
|
|
||
|
impl Display for GenericSendError {
|
||
|
fn fmt(&self, f: &mut Formatter<'_>) -> core::fmt::Result {
|
||
|
match self {
|
||
|
GenericSendError::RxDisconnected => {
|
||
|
write!(f, "rx side has disconnected")
|
||
|
}
|
||
|
GenericSendError::QueueFull(max_cap) => {
|
||
|
write!(f, "queue with max capacity of {max_cap:?} is full")
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#[cfg(feature = "std")]
|
||
|
impl Error for GenericSendError {}
|
||
|
|
||
|
/// Generic error type for sending something via a message queue.
|
||
|
#[derive(Debug, Copy, Clone)]
|
||
|
pub enum GenericRecvError {
|
||
|
Empty,
|
||
|
TxDisconnected,
|
||
|
}
|
||
|
|
||
|
impl Display for GenericRecvError {
|
||
|
fn fmt(&self, f: &mut Formatter<'_>) -> core::fmt::Result {
|
||
|
match self {
|
||
|
Self::TxDisconnected => {
|
||
|
write!(f, "tx side has disconnected")
|
||
|
}
|
||
|
Self::Empty => {
|
||
|
write!(f, "nothing to receive")
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#[cfg(feature = "std")]
|
||
|
impl Error for GenericRecvError {}
|