aboutsummaryrefslogtreecommitdiff
path: root/src/model/bucket_alias_table.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/model/bucket_alias_table.rs')
-rw-r--r--src/model/bucket_alias_table.rs10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/model/bucket_alias_table.rs b/src/model/bucket_alias_table.rs
index 904a5255..caae76f1 100644
--- a/src/model/bucket_alias_table.rs
+++ b/src/model/bucket_alias_table.rs
@@ -1,8 +1,10 @@
use serde::{Deserialize, Serialize};
+use garage_util::data::*;
+use garage_util::time::*;
+
use garage_table::crdt::*;
use garage_table::*;
-use garage_util::data::*;
/// The bucket alias table holds the names given to buckets
/// in the global namespace.
@@ -23,15 +25,19 @@ impl AutoCrdt for AliasParams {
impl BucketAlias {
pub fn new(name: String, bucket_id: Uuid) -> Option<Self> {
+ Self::raw(name, now_msec(), bucket_id)
+ }
+ pub fn raw(name: String, ts: u64, bucket_id: Uuid) -> Option<Self> {
if !is_valid_bucket_name(&name) {
None
} else {
Some(BucketAlias {
name,
- state: crdt::Lww::new(crdt::Deletable::present(AliasParams { bucket_id })),
+ state: crdt::Lww::raw(ts, crdt::Deletable::present(AliasParams { bucket_id })),
})
}
}
+
pub fn is_deleted(&self) -> bool {
self.state.get().is_deleted()
}