use ::serde::ser::Error as EncErr;
use ::thiserror::Error;
#[derive(Error, Debug)]
#[error("encoding error: {kind}")]
pub struct EncodeError<E: EncErr + Send + Sync> {
kind: E,
}
impl<E: EncErr + Send + Sync> EncodeError<E> {
pub(crate) fn new(err: E) -> Self {
EncodeError { kind: err }
}
}
#[cfg(feature = "json")]
impl From<serde_json::Error> for EncodeError<serde_json::Error> {
fn from(err: serde_json::Error) -> Self {
EncodeError { kind: err }
}
}
#[cfg(feature = "msgpack")]
impl From<rmp_serde::encode::Error> for EncodeError<rmp_serde::encode::Error> {
fn from(err: rmp_serde::encode::Error) -> Self {
EncodeError { kind: err }
}
}