pub trait Types{
type LogId: Debug + Clone + Ord + Eq + Codec + Send + Sync + 'static;
type LogPayload: Debug + Clone + Codec + Send + Sync + 'static;
type Vote: Debug + Clone + PartialOrd + Eq + Codec + 'static;
type Callback: Callback + Send + 'static;
type UserData: Debug + Clone + Eq + Codec + 'static;
// Required methods
fn log_index(log_id: &Self::LogId) -> u64;
fn payload_size(payload: &Self::LogPayload) -> u64;
// Provided method
fn next_log_index(log_id: Option<&Self::LogId>) -> u64 { ... }
}Required Associated Types§
type LogId: Debug + Clone + Ord + Eq + Codec + Send + Sync + 'static
type LogPayload: Debug + Clone + Codec + Send + Sync + 'static
type Vote: Debug + Clone + PartialOrd + Eq + Codec + 'static
type Callback: Callback + Send + 'static
type UserData: Debug + Clone + Eq + Codec + 'static
Required Methods§
fn log_index(log_id: &Self::LogId) -> u64
fn payload_size(payload: &Self::LogPayload) -> u64
Provided Methods§
fn next_log_index(log_id: Option<&Self::LogId>) -> u64
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.