gmsol_decode/decode/
mod.rs

1use crate::{decoder::Decoder, error::DecodeError};
2
3/// Visitor.
4pub mod visitor;
5
6/// Type that can be decoded by a [`Decoder`].
7pub trait Decode: Send + Sync + Sized {
8    /// Decode with the given [`Decoder`].
9    fn decode<D: Decoder>(decoder: D) -> Result<Self, DecodeError>;
10}
11
12impl<T: Decode> Decode for Box<T> {
13    fn decode<D: Decoder>(decoder: D) -> Result<Self, DecodeError> {
14        let decoded = T::decode(decoder)?;
15        Ok(Box::new(decoded))
16    }
17}