Trait clvm_traits::ClvmEncoder
source · pub trait ClvmEncoder: Sized {
type Node: Clone + ToClvm<Self::Node>;
// Required methods
fn encode_atom(&mut self, bytes: &[u8]) -> Result<Self::Node, ToClvmError>;
fn encode_pair(
&mut self,
first: Self::Node,
rest: Self::Node
) -> Result<Self::Node, ToClvmError>;
// Provided methods
fn encode_curried_arg(
&mut self,
first: Self::Node,
rest: Self::Node
) -> Result<Self::Node, ToClvmError> { ... }
fn clone_node(&self, node: &Self::Node) -> Self::Node { ... }
}
Required Associated Types§
Required Methods§
fn encode_atom(&mut self, bytes: &[u8]) -> Result<Self::Node, ToClvmError>
fn encode_pair( &mut self, first: Self::Node, rest: Self::Node ) -> Result<Self::Node, ToClvmError>
Provided Methods§
fn encode_curried_arg( &mut self, first: Self::Node, rest: Self::Node ) -> Result<Self::Node, ToClvmError>
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 ToClvm
trait.
Object Safety§
This trait is not object safe.