Use cleaner CRDT data types for objects to avoid accidents like #16 #18

Merged
lx merged 7 commits from feature/better-crdt into master 2020-11-21 15:01:30 +00:00
2 changed files with 4 additions and 6 deletions
Showing only changes of commit 68be5072e5 - Show all commits

View file

@ -39,11 +39,10 @@ impl CRDT for BucketState {
impl Bucket {
pub fn new(name: String) -> Self {
let ret = Bucket {
Bucket {
name,
state: crdt::LWW::new(BucketState::Present(crdt::LWWMap::new())),
};
ret
}
}
pub fn is_deleted(&self) -> bool {
*self.state.get() == BucketState::Deleted

View file

@ -31,14 +31,13 @@ impl Key {
pub fn new(name: String) -> Self {
let key_id = format!("GK{}", hex::encode(&rand::random::<[u8; 12]>()[..]));
let secret_key = hex::encode(&rand::random::<[u8; 32]>()[..]);
let ret = Self {
Self {
key_id,
secret_key,
name: crdt::LWW::new(name),
deleted: crdt::Bool::new(false),
authorized_buckets: crdt::LWWMap::new(),
};
ret
}
}
pub fn delete(key_id: String) -> Self {
Self {