serde_columnar/
err.rs

1use std::io;
2
3use postcard::Error as PostcardError;
4use thiserror::Error;
5
6/// This is the error type used by `serde_columnar`
7#[derive(Error, Debug)]
8pub enum ColumnarError {
9    #[error("postcard error: {0}")]
10    SerializeError(#[from] PostcardError),
11    #[error("`{0}` during columnar encoding")]
12    ColumnarEncodeError(String),
13    #[error("`{0}` during columnar decoding")]
14    ColumnarDecodeError(Box<str>),
15    #[error("`{0}` during rle encoding")]
16    RleEncodeError(String),
17    #[error("`{0}` during rle decoding")]
18    RleDecodeError(String),
19    #[error("invalid strategy code `{0}`")]
20    InvalidStrategy(u8),
21    #[error("io error: {0}")]
22    IOError(#[from] io::Error),
23    #[error("overflow error")]
24    OverflowError,
25    #[error("unknown data store error")]
26    Unknown,
27}
28
29impl serde::ser::Error for ColumnarError {
30    fn custom<T: std::fmt::Display>(msg: T) -> Self {
31        ColumnarError::ColumnarEncodeError(msg.to_string())
32    }
33}