use thiserror::Error;
use super::*;
#[derive(Debug, Error)]
pub enum ArbiterEngineError {
#[error("MessagerError: {0}")]
MessagerError(String),
#[error("AgentBuildError: {0}")]
AgentBuildError(String),
#[error("WorldError: {0}")]
WorldError(String),
#[error("UniverseError: {0}")]
UniverseError(String),
#[error(transparent)]
JoinError(#[from] tokio::task::JoinError),
#[error(transparent)]
SendError(#[from] tokio::sync::broadcast::error::SendError<crate::messager::Message>),
#[error(transparent)]
SerdeJsonError(#[from] serde_json::Error),
#[error(transparent)]
IoError(#[from] std::io::Error),
#[error(transparent)]
TomlError(#[from] toml::de::Error),
#[error(transparent)]
ArbiterCoreError(#[from] arbiter_core::errors::ArbiterCoreError),
}