use crate::{decoder::Decoder, error::DecodeError};
pub mod visitor;
pub trait Decode: Send + Sync + Sized {
fn decode<D: Decoder>(decoder: D) -> Result<Self, DecodeError>;
}
impl<T: Decode> Decode for Box<T> {
fn decode<D: Decoder>(decoder: D) -> Result<Self, DecodeError> {
let decoded = T::decode(decoder)?;
Ok(Box::new(decoded))
}
}