Trait NodeImplementation

Source
pub trait NodeImplementation<TYPES>:
    Send
    + Sync
    + Clone
    + Eq
    + Hash
    + 'static
    + Serialize
    + for<'de> Deserialize<'de>
where TYPES: NodeType,
{ type Network: ConnectedNetwork<<TYPES as NodeType>::SignatureKey>; type Storage: Storage<TYPES>; }
Expand description

Node implementation aggregate trait

This trait exists to collect multiple behavior implementations into one type, to allow HotShot to avoid annoying numbers of type arguments and type patching.

It is recommended you implement this trait on a zero sized type, as HotShotdoes not actually store or keep a reference to any value implementing this trait.

Required Associated Types§

Source

type Network: ConnectedNetwork<<TYPES as NodeType>::SignatureKey>

The underlying network type

Source

type Storage: Storage<TYPES>

Storage for DA layer interactions

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§