pub trait StateStore {
Show 17 methods
// Required methods
fn state_get(
&mut self,
key: &GroupStateKey,
) -> Result<Option<EncodedPodRow>>;
fn state_get_many_visit(
&mut self,
keys: &[GroupStateKey],
visit: &mut dyn FnMut(GroupStateKey, EncodedPodRow) -> Result<()>,
) -> Result<()>;
fn state_set(
&mut self,
key: &GroupStateKey,
payload: EncodedPodRow,
) -> Result<()>;
fn state_remove(&mut self, key: &GroupStateKey) -> Result<()>;
fn state_page_inner(
&mut self,
range: EncodedKeyRange,
limit: Option<usize>,
) -> Result<Vec<(GroupStateKey, EncodedPodRow)>>;
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 remove_row_number(
&mut self,
group: GroupId,
key: &EncodedKey,
) -> Result<()>;
fn remove_row_number_for_group(&mut self, group: 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: EncodedKeyRange,
limit: Option<usize>,
) -> Result<Vec<(GroupStateKey, EncodedPodRow)>> { ... }
fn group_sweep(
&mut self,
group: GroupId,
data_only: bool,
limit: Option<usize>,
) -> Result<Vec<(GroupStateKey, EncodedPodRow)>> { ... }
fn group_sweep_many(
&mut self,
groups: &[GroupId],
limit: usize,
) -> Result<GroupSweep> { ... }
fn remove_root_siblings(
&mut self,
swept: &[(GroupStateKey, EncodedPodRow)],
) -> Result<()> { ... }
fn state_last(
&mut self,
range: EncodedKeyRange,
) -> Result<Option<(GroupStateKey, EncodedPodRow)>> { ... }
fn remove_row_numbers(
&mut self,
group: GroupId,
keys: &[EncodedKey],
) -> Result<()> { ... }
}Required Methods§
fn state_get(&mut self, key: &GroupStateKey) -> Result<Option<EncodedPodRow>>
fn state_get_many_visit( &mut self, keys: &[GroupStateKey], visit: &mut dyn FnMut(GroupStateKey, EncodedPodRow) -> Result<()>, ) -> Result<()>
fn state_set( &mut self, key: &GroupStateKey, payload: EncodedPodRow, ) -> Result<()>
fn state_remove(&mut self, key: &GroupStateKey) -> Result<()>
fn state_page_inner( &mut self, range: EncodedKeyRange, limit: Option<usize>, ) -> Result<Vec<(GroupStateKey, EncodedPodRow)>>
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 remove_row_number(&mut self, group: GroupId, key: &EncodedKey) -> Result<()>
fn remove_row_number_for_group(&mut self, group: 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: EncodedKeyRange, limit: Option<usize>, ) -> Result<Vec<(GroupStateKey, EncodedPodRow)>>
fn group_sweep( &mut self, group: GroupId, data_only: bool, limit: Option<usize>, ) -> Result<Vec<(GroupStateKey, EncodedPodRow)>>
fn group_sweep_many( &mut self, groups: &[GroupId], limit: usize, ) -> Result<GroupSweep>
fn remove_root_siblings( &mut self, swept: &[(GroupStateKey, EncodedPodRow)], ) -> Result<()>
fn state_last( &mut self, range: EncodedKeyRange, ) -> Result<Option<(GroupStateKey, EncodedPodRow)>>
fn remove_row_numbers( &mut self, group: GroupId, keys: &[EncodedKey], ) -> Result<()>
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".