pub trait ObjectStoreBackend: Send + Sync {
// Required methods
fn put(&self, object: GitObject) -> Result<ObjectId>;
fn get(&self, id: &ObjectId) -> Result<Option<GitObject>>;
fn contains(&self, id: &ObjectId) -> Result<bool>;
fn delete(&self, id: &ObjectId) -> Result<bool>;
fn len(&self) -> Result<usize>;
fn list_objects(&self) -> Result<Vec<ObjectId>>;
// Provided methods
fn is_empty(&self) -> Result<bool> { ... }
fn batch_put(&self, objects: Vec<GitObject>) -> Result<Vec<ObjectId>> { ... }
fn batch_get(&self, ids: &[ObjectId]) -> Result<Vec<Option<GitObject>>> { ... }
fn flush(&self) -> Result<()> { ... }
fn compact(&self) -> Result<()> { ... }
}Expand description
Trait for object storage backends.
Implementations include in-memory, RocksDB, and hybrid storage.
Required Methods§
Sourcefn list_objects(&self) -> Result<Vec<ObjectId>>
fn list_objects(&self) -> Result<Vec<ObjectId>>
Lists all object IDs.