gmsol-decode 0.9.0

GMX-Solana is an extension of GMX on the Solana blockchain.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use crate::{decoder::Decoder, error::DecodeError};

/// Visitor.
pub mod visitor;

/// Type that can be decoded by a [`Decoder`].
pub trait Decode: Send + Sync + Sized {
    /// Decode with the given [`Decoder`].
    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))
    }
}