Skip to main content

halley_ipc/
error.rs

1use std::fmt;
2use std::io;
3
4#[derive(Debug)]
5pub enum CodecError {
6    Io(io::Error),
7    Encode(postcard::Error),
8    Decode(postcard::Error),
9    FrameTooLarge(u32),
10}
11
12impl fmt::Display for CodecError {
13    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
14        match self {
15            Self::Io(e) => write!(f, "i/o error: {e}"),
16            Self::Encode(e) => write!(f, "encode error: {e}"),
17            Self::Decode(e) => write!(f, "decode error: {e}"),
18            Self::FrameTooLarge(len) => write!(f, "frame too large: {len} bytes"),
19        }
20    }
21}
22
23impl std::error::Error for CodecError {}
24
25impl From<io::Error> for CodecError {
26    fn from(value: io::Error) -> Self {
27        Self::Io(value)
28    }
29}