1use std::{error::Error, fmt};
2
3#[derive(Debug)]
4pub enum NaiaClientError {
5 Message(String),
6 Wrapped(Box<dyn Error + Send>),
7 SendError,
8 RecvError,
9 IdError(u16),
10}
11
12impl NaiaClientError {
13 pub fn from_message(message: &str) -> Self {
14 Self::Message(message.to_string())
15 }
16}
17
18impl fmt::Display for NaiaClientError {
19 fn fmt(&self, f: &mut fmt::Formatter) -> Result<(), fmt::Error> {
20 match self {
21 Self::Message(msg) => write!(f, "Naia Client Error: {}", msg),
22 Self::Wrapped(boxed_err) => fmt::Display::fmt(boxed_err.as_ref(), f),
23 Self::SendError => write!(f, "Naia Client Error: Send Error"),
24 Self::RecvError => write!(f, "Naia Client Error: Recv Error"),
25 Self::IdError(code) => write!(f, "Naia Client Error: Id Error: {}", code),
26 }
27 }
28}
29
30impl Error for NaiaClientError {}
31unsafe impl Send for NaiaClientError {}
32unsafe impl Sync for NaiaClientError {}