use crate::log;
use thiserror::Error;

#[derive(Debug, Error)]
pub enum SystemError<T>
where
  T: std::fmt::Debug,
{
  #[error("TODO")]
  TODO,

  #[error("Failed to send message: {message:?}")]
  ChannelSendError { message: T },

  #[error("Channel {message:?} was closed")]
  ChannelClosed { message: T },

  #[error("Event Bus closed")]
  EventBusClosed(#[from] tokio::sync::broadcast::error::RecvError),
}
