spawned_concurrency/
error.rs

1#[derive(Debug, thiserror::Error)]
2pub enum GenServerError {
3    #[error("Callback Error")]
4    Callback,
5    #[error("Initialization error")]
6    Initialization,
7    #[error("Server error")]
8    Server,
9    #[error("Unsupported Call Messages on this GenServer")]
10    CallMsgUnused,
11    #[error("Unsupported Cast Messages on this GenServer")]
12    CastMsgUnused,
13    #[error("Call to GenServer timed out")]
14    CallTimeout,
15}
16
17impl<T> From<spawned_rt::threads::mpsc::SendError<T>> for GenServerError {
18    fn from(_value: spawned_rt::threads::mpsc::SendError<T>) -> Self {
19        Self::Server
20    }
21}
22
23impl<T> From<spawned_rt::tasks::mpsc::SendError<T>> for GenServerError {
24    fn from(_value: spawned_rt::tasks::mpsc::SendError<T>) -> Self {
25        Self::Server
26    }
27}
28
29#[cfg(test)]
30mod tests {
31    use super::*;
32
33    #[test]
34    fn test_error_into_std_error() {
35        let error: &dyn std::error::Error = &GenServerError::Callback;
36        assert_eq!(error.to_string(), "Callback Error");
37    }
38}