Trait clvm_traits::ClvmEncoder

source ·
pub trait ClvmEncoder {
    type Node: Clone;

    // 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 method
    fn clone_node(&self, node: &Self::Node) -> Self::Node { ... }
}

Required Associated Types§

Required Methods§

source

fn encode_atom(&mut self, bytes: &[u8]) -> Result<Self::Node, ToClvmError>

source

fn encode_pair( &mut self, first: Self::Node, rest: Self::Node ) -> Result<Self::Node, ToClvmError>

Provided Methods§

source

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.

Implementations on Foreign Types§

source§

impl ClvmEncoder for Allocator

§

type Node = NodePtr

source§

fn encode_atom(&mut self, bytes: &[u8]) -> Result<Self::Node, ToClvmError>

source§

fn encode_pair( &mut self, first: Self::Node, rest: Self::Node ) -> Result<Self::Node, ToClvmError>

Implementors§