#[derive(Clone, Debug, Eq, PartialEq)]
pub struct RangeItem {
pub cursor: i64,
pub value: Vec<u8>,
}
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub enum RangeOrder {
OldestFirst,
NewestFirst,
}
#[derive(Clone, Debug, Eq, PartialEq)]
pub struct RangePage {
pub items: Vec<RangeItem>,
pub next_cursor: Option<i64>,
}
#[derive(Clone, Debug, Eq, PartialEq)]
pub enum StorageOperation {
Set {
key: String,
value: Vec<u8>,
},
Delete {
key: String,
},
Expire {
key: String,
ttl_seconds: usize,
},
RangeAdd {
key: String,
value: Vec<u8>,
},
RangeRemove {
key: String,
value: Vec<u8>,
},
RangeExpire {
key: String,
value: Vec<u8>,
ttl_seconds: usize,
},
RangeClear {
key: String,
},
}