use std::{
error::Error,
fmt::{Display, Formatter},
};
use crate::CommandError;
#[derive(Debug)]
#[non_exhaustive]
pub enum AddEmitterError {
EmitterLimitReached,
CommandError(CommandError),
}
impl Display for AddEmitterError {
fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
match self {
AddEmitterError::EmitterLimitReached => f.write_str(
"Could not add a emitter because the maximum number of emitters has been reached.",
),
AddEmitterError::CommandError(error) => error.fmt(f),
}
}
}
impl Error for AddEmitterError {
fn source(&self) -> Option<&(dyn Error + 'static)> {
match self {
AddEmitterError::CommandError(error) => Some(error),
_ => None,
}
}
}
impl From<CommandError> for AddEmitterError {
fn from(v: CommandError) -> Self {
Self::CommandError(v)
}
}
#[derive(Debug)]
#[non_exhaustive]
pub enum AddListenerError {
ListenerLimitReached,
CommandError(CommandError),
}
impl Display for AddListenerError {
fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
match self {
AddListenerError::ListenerLimitReached => f.write_str(
"Could not add a listener because the maximum number of listeners has been reached.",
),
AddListenerError::CommandError(error) => error.fmt(f),
}
}
}
impl Error for AddListenerError {
fn source(&self) -> Option<&(dyn Error + 'static)> {
match self {
AddListenerError::CommandError(error) => Some(error),
_ => None,
}
}
}
impl From<CommandError> for AddListenerError {
fn from(v: CommandError) -> Self {
Self::CommandError(v)
}
}