pub trait Invocation: Sized + 'static {
    type RoundNum: RoundNum;
    type CoordNum: CoordNum;
    type State: State;
    type Yea: Debug + Send + Sync + 'static;
    type Nay: Debug + Send + Sync + 'static;
    type Abstain: Debug + Send + Sync + 'static;
    type Ejection: Debug + Send + Sync + 'static;
    type CommunicationError: Debug + Send + Sync + 'static;

    fn node_builder() -> NodeBuilderBlank<Self> { ... }
}
Expand description

A set of type arguments to invoke Paxakos with.

Idiomatic Rust code will usually have separate type parameters for every type. This has several advantages, for instance type bounds need only be placed on implementations which require them. However, as a generic implementation of a fairly complex algorithm, Paxakos would require rather a lot of individual type parameters. Therefore Paxakos foregoes the idiomatic approach and accepts a single Invocation argument in most places.

Required Associated Types

Round number type.

Coordination number type.

State type.

Additional data sent along with ‘yea’ votes.

Additional data sent along with ‘nay’ votes.

Additional data sent along with abstentions.

Reason the node’s state may be ejected.

Communication error type.

Provided Methods

Constructs a blank node builder for this set of type arguments.

Implementors