pub trait CommitteeStorage<N: Network>:
'static
+ Clone
+ Send
+ Sync {
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<S: Clone + Into<StorageMode>>(storage: S) -> Result<Self>;
fn current_round_map(&self) -> &Self::CurrentRoundMap;
fn round_to_height_map(&self) -> &Self::RoundToHeightMap;
fn committee_map(&self) -> &Self::CommitteeMap;
fn storage_mode(&self) -> &StorageMode;
// 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<()> { ... }
fn insert(&self, next_height: u32, committee: Committee<N>) -> Result<()> { ... }
fn remove(&self, height: u32) -> Result<()> { ... }
fn current_round(&self) -> Result<u64> { ... }
fn current_height(&self) -> Result<u32> { ... }
fn current_committee(&self) -> Result<Committee<N>> { ... }
fn get_height_for_round(&self, round: u64) -> Result<Option<u32>> { ... }
fn get_committee(&self, height: u32) -> Result<Option<Committee<N>>> { ... }
fn get_committee_for_round(
&self,
round: u64,
) -> Result<Option<Committee<N>>> { ... }
}
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 open<S: Clone + Into<StorageMode>>(storage: S) -> Result<Self>
fn open<S: Clone + Into<StorageMode>>(storage: S) -> Result<Self>
Initializes the committee storage.
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.
Sourcefn storage_mode(&self) -> &StorageMode
fn storage_mode(&self) -> &StorageMode
Returns the storage mode.
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<()>
fn finish_atomic(&self) -> Result<()>
Finishes an atomic batch write operation.
Sourcefn insert(&self, next_height: u32, committee: Committee<N>) -> Result<()>
fn insert(&self, next_height: u32, committee: Committee<N>) -> Result<()>
Stores the given (next height, committee)
pair into storage,
and indexes storage up to the next round
.
Sourcefn remove(&self, height: u32) -> Result<()>
fn remove(&self, height: u32) -> Result<()>
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>
fn current_round(&self) -> Result<u64>
Returns the current round.
Sourcefn current_height(&self) -> Result<u32>
fn current_height(&self) -> Result<u32>
Returns the current height.
Sourcefn current_committee(&self) -> Result<Committee<N>>
fn current_committee(&self) -> Result<Committee<N>>
Returns the current committee.
Sourcefn get_height_for_round(&self, round: u64) -> Result<Option<u32>>
fn get_height_for_round(&self, round: u64) -> Result<Option<u32>>
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.