use crate::GitOid;
use crate::HashAlgorithm;
use crate::ObjectType;
use crate::Result;
use std::io::BufReader;
use std::io::Read;
use std::io::Seek;
pub struct GitOidBuilder {
hash_algorithm: HashAlgorithm,
object_type: ObjectType,
}
impl GitOidBuilder {
pub fn new(hash_algorithm: HashAlgorithm, object_type: ObjectType) -> GitOidBuilder {
GitOidBuilder {
hash_algorithm,
object_type,
}
}
pub fn build_from_bytes(&self, content: &[u8]) -> GitOid {
GitOid::new_from_bytes(self.hash_algorithm, self.object_type, content)
}
pub fn build_from_str(&self, s: &str) -> GitOid {
GitOid::new_from_str(self.hash_algorithm, self.object_type, s)
}
pub fn build_from_reader<R>(&self, reader: BufReader<R>) -> Result<GitOid>
where
R: Read + Seek,
{
GitOid::new_from_reader(self.hash_algorithm, self.object_type, reader)
}
}