use crate::error::Result;
use crate::objects::{Object, ObjectId, ObjectInfo, ObjectKind};
use crate::repo::Repository;
#[derive(Debug, Copy, Clone)]
pub struct Objects<'repo> {
repo: &'repo Repository,
}
impl<'repo> Objects<'repo> {
#[inline]
#[must_use]
pub fn new(repo: &'repo Repository) -> Self {
Self { repo }
}
#[inline]
#[must_use]
pub fn repository(&self) -> &'repo Repository {
self.repo
}
#[inline]
pub fn contains(&self, oid: &ObjectId) -> bool {
self.repo.odb().exists(oid)
}
#[inline]
pub fn read(&self, oid: &ObjectId) -> Result<Object> {
self.repo.odb().read(oid)
}
#[inline]
pub fn read_info(&self, oid: &ObjectId) -> Result<ObjectInfo> {
self.repo.odb().read_info(oid)
}
#[inline]
pub fn hash(&self, kind: ObjectKind, data: &[u8]) -> Result<ObjectId> {
self.repo.odb().hash(kind, data)
}
#[inline]
pub fn write(&self, kind: ObjectKind, data: &[u8]) -> Result<ObjectId> {
self.repo.odb().write(kind, data)
}
}