1#[allow(missing_copy_implementations)]
5#[derive(Debug, Clone)]
6pub enum Error {
7 RecvFailed(u8),
9 SenderClosed,
11 ReceiverAlreadyGone,
13 Runtime(String),
15 Decode(String),
17}
18
19impl std::error::Error for Error {}
20impl std::fmt::Display for Error {
21 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
22 match self {
23 Error::RecvFailed(_) => f.write_str("Receive failed"),
24 Error::ReceiverAlreadyGone => f.write_str("Received already taken"),
25 Error::Decode(e) => {
26 let mut message = "Decode error: ".to_owned();
27 message.push_str(e);
28 f.write_str(e)
29 }
30 Error::Runtime(msg) => f.write_str(msg),
31 Error::SenderClosed => f.write_str("Sender closed"),
32 }
33 }
34}
35
36impl From<wasmrs_runtime::Error> for Error {
37 fn from(e: wasmrs_runtime::Error) -> Self {
38 Self::Runtime(e.to_string())
39 }
40}