pub trait StateStore {
Show 17 methods
// Required methods
fn state_get(
&mut self,
keys: &[GroupStateKey],
) -> Result<Vec<Option<EncodedPodRow>>>;
fn state_set(
&mut self,
rows: Vec<(GroupStateKey, EncodedPodRow)>,
) -> Result<()>;
fn state_remove(&mut self, keys: &[GroupStateKey]) -> Result<()>;
fn state_batch(&mut self, keys: Vec<GroupStateKey>) -> Result<StateBatch>;
fn state_write_batch(&mut self, batch: StateBatch) -> Result<()>;
fn state_page_inner(
&mut self,
range: GroupStateRange,
limit: Option<usize>,
) -> Result<Vec<(GroupStateKey, EncodedPodRow)>>;
fn group_sweep(
&mut self,
groups: &[GroupId],
limit: usize,
keyspaces: KeyspaceMask,
) -> Result<GroupSweep>;
fn get_or_create_row_numbers(
&mut self,
group: GroupId,
keys: &[EncodedKey],
) -> Result<Vec<(RowNumber, bool)>>;
fn get_or_create_row_numbers_for_groups(
&mut self,
groups: &[GroupId],
) -> Result<Vec<(RowNumber, bool)>>;
fn get_row_numbers(
&mut self,
group: GroupId,
keys: &[EncodedKey],
) -> Result<Vec<Option<RowNumber>>>;
fn remove_row_number(
&mut self,
group: GroupId,
keys: &[EncodedKey],
) -> Result<()>;
fn remove_row_number_for_group(&mut self, groups: &[GroupId]) -> Result<()>;
fn written_at(&self) -> DateTime;
// Provided methods
fn state_classify(&mut self, _key: &GroupStateKey, _pre: Option<ByteSize>) { ... }
fn state_page(
&mut self,
range: GroupStateRange,
limit: Option<usize>,
) -> Result<Vec<(GroupStateKey, EncodedPodRow)>> { ... }
fn remove_root_siblings(
&mut self,
swept: &[(GroupStateKey, EncodedPodRow)],
) -> Result<()> { ... }
fn state_last(
&mut self,
range: GroupStateRange,
) -> Result<Option<(GroupStateKey, EncodedPodRow)>> { ... }
}Required Methods§
fn state_get( &mut self, keys: &[GroupStateKey], ) -> Result<Vec<Option<EncodedPodRow>>>
fn state_set(&mut self, rows: Vec<(GroupStateKey, EncodedPodRow)>) -> Result<()>
fn state_remove(&mut self, keys: &[GroupStateKey]) -> Result<()>
fn state_batch(&mut self, keys: Vec<GroupStateKey>) -> Result<StateBatch>
fn state_write_batch(&mut self, batch: StateBatch) -> Result<()>
fn state_page_inner( &mut self, range: GroupStateRange, limit: Option<usize>, ) -> Result<Vec<(GroupStateKey, EncodedPodRow)>>
fn group_sweep( &mut self, groups: &[GroupId], limit: usize, keyspaces: KeyspaceMask, ) -> Result<GroupSweep>
fn get_or_create_row_numbers( &mut self, group: GroupId, keys: &[EncodedKey], ) -> Result<Vec<(RowNumber, bool)>>
fn get_or_create_row_numbers_for_groups( &mut self, groups: &[GroupId], ) -> Result<Vec<(RowNumber, bool)>>
fn get_row_numbers( &mut self, group: GroupId, keys: &[EncodedKey], ) -> Result<Vec<Option<RowNumber>>>
fn remove_row_number( &mut self, group: GroupId, keys: &[EncodedKey], ) -> Result<()>
fn remove_row_number_for_group(&mut self, groups: &[GroupId]) -> Result<()>
fn written_at(&self) -> DateTime
Provided Methods§
fn state_classify(&mut self, _key: &GroupStateKey, _pre: Option<ByteSize>)
fn state_page( &mut self, range: GroupStateRange, limit: Option<usize>, ) -> Result<Vec<(GroupStateKey, EncodedPodRow)>>
fn remove_root_siblings( &mut self, swept: &[(GroupStateKey, EncodedPodRow)], ) -> Result<()>
fn state_last( &mut self, range: GroupStateRange, ) -> Result<Option<(GroupStateKey, EncodedPodRow)>>
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".