pub trait CommitteeStorage<N>:
'static
+ Clone
+ Send
+ Syncwhere
N: Network,{
type CurrentRoundMap: for<'a> Map<'a, u8, u64>;
type RoundToHeightMap: for<'a> Map<'a, u64, u32>;
type CommitteeMap: for<'a> Map<'a, u32, Committee<N>>;
Show 20 methods
// Required methods
fn open(dev: Option<u16>) -> Result<Self, Error>;
fn current_round_map(&self) -> &Self::CurrentRoundMap;
fn round_to_height_map(&self) -> &Self::RoundToHeightMap;
fn committee_map(&self) -> &Self::CommitteeMap;
fn dev(&self) -> Option<u16>;
// Provided methods
fn start_atomic(&self) { ... }
fn is_atomic_in_progress(&self) -> bool { ... }
fn atomic_checkpoint(&self) { ... }
fn clear_latest_checkpoint(&self) { ... }
fn atomic_rewind(&self) { ... }
fn abort_atomic(&self) { ... }
fn finish_atomic(&self) -> Result<(), Error> { ... }
fn insert(
&self,
next_height: u32,
committee: Committee<N>,
) -> Result<(), Error> { ... }
fn remove(&self, height: u32) -> Result<(), Error> { ... }
fn current_round(&self) -> Result<u64, Error> { ... }
fn current_height(&self) -> Result<u32, Error> { ... }
fn current_committee(&self) -> Result<Committee<N>, Error> { ... }
fn get_height_for_round(&self, round: u64) -> Result<Option<u32>, Error> { ... }
fn get_committee(&self, height: u32) -> Result<Option<Committee<N>>, Error> { ... }
fn get_committee_for_round(
&self,
round: u64,
) -> Result<Option<Committee<N>>, Error> { ... }
}Expand description
A trait for committee storage.
Required Associated Types§
Sourcetype CurrentRoundMap: for<'a> Map<'a, u8, u64>
type CurrentRoundMap: for<'a> Map<'a, u8, u64>
The mapping of () to current round.
Sourcetype RoundToHeightMap: for<'a> Map<'a, u64, u32>
type RoundToHeightMap: for<'a> Map<'a, u64, u32>
The mapping of round to height.
Sourcetype CommitteeMap: for<'a> Map<'a, u32, Committee<N>>
type CommitteeMap: for<'a> Map<'a, u32, Committee<N>>
The mapping of block height to committee.
Required Methods§
Sourcefn current_round_map(&self) -> &Self::CurrentRoundMap
fn current_round_map(&self) -> &Self::CurrentRoundMap
Returns the current round map.
Sourcefn round_to_height_map(&self) -> &Self::RoundToHeightMap
fn round_to_height_map(&self) -> &Self::RoundToHeightMap
Returns the round to height map.
Sourcefn committee_map(&self) -> &Self::CommitteeMap
fn committee_map(&self) -> &Self::CommitteeMap
Returns the committee map.
Provided Methods§
Sourcefn start_atomic(&self)
fn start_atomic(&self)
Starts an atomic batch write operation.
Sourcefn is_atomic_in_progress(&self) -> bool
fn is_atomic_in_progress(&self) -> bool
Checks if an atomic batch is in progress.
Sourcefn atomic_checkpoint(&self)
fn atomic_checkpoint(&self)
Checkpoints the atomic batch.
Sourcefn clear_latest_checkpoint(&self)
fn clear_latest_checkpoint(&self)
Clears the latest atomic batch checkpoint.
Sourcefn atomic_rewind(&self)
fn atomic_rewind(&self)
Rewinds the atomic batch to the previous checkpoint.
Sourcefn abort_atomic(&self)
fn abort_atomic(&self)
Aborts an atomic batch write operation.
Sourcefn finish_atomic(&self) -> Result<(), Error>
fn finish_atomic(&self) -> Result<(), Error>
Finishes an atomic batch write operation.
Sourcefn insert(&self, next_height: u32, committee: Committee<N>) -> Result<(), Error>
fn insert(&self, next_height: u32, committee: Committee<N>) -> Result<(), Error>
Stores the given (next height, committee) pair into storage,
and indexes storage up to the next round.
Sourcefn remove(&self, height: u32) -> Result<(), Error>
fn remove(&self, height: u32) -> Result<(), Error>
Removes the committee for the given height, in the process
removing all round to height entries back to the previous committee.
Sourcefn current_round(&self) -> Result<u64, Error>
fn current_round(&self) -> Result<u64, Error>
Returns the current round.
Sourcefn current_height(&self) -> Result<u32, Error>
fn current_height(&self) -> Result<u32, Error>
Returns the current height.
Sourcefn current_committee(&self) -> Result<Committee<N>, Error>
fn current_committee(&self) -> Result<Committee<N>, Error>
Returns the current committee.
Sourcefn get_height_for_round(&self, round: u64) -> Result<Option<u32>, Error>
fn get_height_for_round(&self, round: u64) -> Result<Option<u32>, Error>
Returns the height for the given round.
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.