Trait clvm_traits::ClvmDecoder
source · pub trait ClvmDecoder: Sized {
type Node: Clone + FromClvm<Self>;
// Required methods
fn decode_atom(&self, node: &Self::Node) -> Result<Atom<'_>, FromClvmError>;
fn decode_pair(
&self,
node: &Self::Node,
) -> Result<(Self::Node, Self::Node), FromClvmError>;
// Provided methods
fn decode_bigint(&self, node: &Self::Node) -> Result<BigInt, FromClvmError> { ... }
fn decode_curried_arg(
&self,
node: &Self::Node,
) -> Result<(Self::Node, Self::Node), FromClvmError> { ... }
fn clone_node(&self, node: &Self::Node) -> Self::Node { ... }
}
Required Associated Types§
Required Methods§
fn decode_atom(&self, node: &Self::Node) -> Result<Atom<'_>, FromClvmError>
fn decode_pair( &self, node: &Self::Node, ) -> Result<(Self::Node, Self::Node), FromClvmError>
Provided Methods§
fn decode_bigint(&self, node: &Self::Node) -> Result<BigInt, FromClvmError>
fn decode_curried_arg( &self, node: &Self::Node, ) -> Result<(Self::Node, Self::Node), FromClvmError>
sourcefn clone_node(&self, node: &Self::Node) -> Self::Node
fn clone_node(&self, node: &Self::Node) -> Self::Node
This is a helper function that just calls clone
on the node.
It’s required only because the compiler can’t infer that N
is Clone
,
since there’s no Clone
bound on the FromClvm
trait.
Object Safety§
This trait is not object safe.