aboutsummaryrefslogtreecommitdiff
path: root/src/model/object_table.rs
diff options
context:
space:
mode:
authorAlex Auvolat <alex@adnab.me>2021-12-14 13:55:11 +0100
committerAlex Auvolat <alex@adnab.me>2022-01-04 12:45:46 +0100
commit5b1117e582db16cc5aa50840a685875cbd5501f4 (patch)
tree06fec47bf56cb08cb51334454dc15f98352c98f2 /src/model/object_table.rs
parent8f6026de5ecd44cbe0fc0bcd47638a1ece860439 (diff)
downloadgarage-5b1117e582db16cc5aa50840a685875cbd5501f4.tar.gz
garage-5b1117e582db16cc5aa50840a685875cbd5501f4.zip
New model for buckets
Diffstat (limited to 'src/model/object_table.rs')
-rw-r--r--src/model/object_table.rs16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/model/object_table.rs b/src/model/object_table.rs
index 9eec47ff..285cb5a7 100644
--- a/src/model/object_table.rs
+++ b/src/model/object_table.rs
@@ -15,7 +15,7 @@ use crate::version_table::*;
#[derive(PartialEq, Clone, Debug, Serialize, Deserialize)]
pub struct Object {
/// The bucket in which the object is stored, used as partition key
- pub bucket: String,
+ pub bucket_id: Uuid,
/// The key at which the object is stored in its bucket, used as sorting key
pub key: String,
@@ -26,9 +26,9 @@ pub struct Object {
impl Object {
/// Initialize an Object struct from parts
- pub fn new(bucket: String, key: String, versions: Vec<ObjectVersion>) -> Self {
+ pub fn new(bucket_id: Uuid, key: String, versions: Vec<ObjectVersion>) -> Self {
let mut ret = Self {
- bucket,
+ bucket_id,
key,
versions: vec![],
};
@@ -164,9 +164,9 @@ impl ObjectVersion {
}
}
-impl Entry<String, String> for Object {
- fn partition_key(&self) -> &String {
- &self.bucket
+impl Entry<Uuid, String> for Object {
+ fn partition_key(&self) -> &Uuid {
+ &self.bucket_id
}
fn sort_key(&self) -> &String {
&self.key
@@ -219,7 +219,7 @@ pub struct ObjectTable {
impl TableSchema for ObjectTable {
const TABLE_NAME: &'static str = "object";
- type P = String;
+ type P = Uuid;
type S = String;
type E = Object;
type Filter = DeletedFilter;
@@ -242,7 +242,7 @@ impl TableSchema for ObjectTable {
};
if newly_deleted {
let deleted_version =
- Version::new(v.uuid, old_v.bucket.clone(), old_v.key.clone(), true);
+ Version::new(v.uuid, old_v.bucket_id, old_v.key.clone(), true);
version_table.insert(&deleted_version).await?;
}
}