mirror of
https://github.com/deuxfleurs-org/garage.git
synced 2026-08-18 17:26:16 +00:00
PollRange RPC
This commit is contained in:
@@ -17,6 +17,7 @@ use garage_util::error::{Error, OkOrMessage};
|
||||
|
||||
use crate::k2v::causality::*;
|
||||
use crate::k2v::item_table::*;
|
||||
use crate::k2v::sub::*;
|
||||
|
||||
#[derive(Debug, Serialize, Deserialize, Default)]
|
||||
pub struct RangeSeenMarker {
|
||||
@@ -29,6 +30,18 @@ impl RangeSeenMarker {
|
||||
Self::default()
|
||||
}
|
||||
|
||||
pub fn restrict(&mut self, range: &PollRange) {
|
||||
if let Some(start) = &range.start {
|
||||
self.items = self.items.split_off(start);
|
||||
}
|
||||
if let Some(end) = &range.end {
|
||||
self.items.split_off(end);
|
||||
}
|
||||
if let Some(pfx) = &range.prefix {
|
||||
self.items.retain(|k, _v| k.starts_with(pfx));
|
||||
}
|
||||
}
|
||||
|
||||
pub fn mark_seen_node_items<'a, I: IntoIterator<Item = &'a K2VItem>>(
|
||||
&mut self,
|
||||
node: Uuid,
|
||||
|
||||
Reference in New Issue
Block a user