Skip to content
Clone
447bae9
19 lines 794 B Rust
//! object Operation trait for the object module (object access on bare repositories based on gix).
use gix::hash::ObjectId;
use crate::object::types::{ObjectFormat, ObjectInfo, ObjectType, WriteObjectResult};
/// Operation trait for the object module.
pub trait ObjectOps {
fn object_format(&self) -> Result<ObjectFormat, crate::Error>;
fn object_exists(&self, id: &ObjectId) -> Result<bool, crate::Error>;
fn object_type_of(&self, id: &ObjectId) -> Result<ObjectType, crate::Error>;
fn object_size_of(&self, id: &ObjectId) -> Result<u64, crate::Error>;
fn object_info(&self, id: &ObjectId) -> Result<ObjectInfo, crate::Error>;
fn object_write_object(
&self,
kind: ObjectType,
data: &[u8],
) -> Result<WriteObjectResult, crate::Error>;
}