History

refactor

Sebastian Thiel committed 5 years ago

Commit ef674ff1 parent 5cf48404 files · +28 −20Browse files

Unified · Split

4 files
  1. git-odb/src/borrowed.rs +16 −9
  2. git-odb/src/linked/locate.rs +2 −2
  3. git-odb/src/loose/db/locate.rs +4 −5
  4. git-odb/src/pack/index/verify.rs +6 −4
git-odb/src/borrowed.rs+16−9
@@ -1,5 +1,4 @@
11 //! Contains a borrowed Object bound to a buffer holding its decompressed data.
2−use git_object::borrowed;
32
43 /// A borrowed object using a borrowed slice as backing buffer.
54 #[derive(PartialEq, Eq, Debug, Hash, Ord, PartialOrd, Clone)]
@@ -11,17 +10,25 @@ pub struct Object<'a> { · 5 unmodified lines
1110 }
1211
1312 impl<'a> Object<'a> {
14− /// Decodes the data in the backing slice into a [`borrowed::Object`], allowing to access all of its data
13+ /// Decodes the data in the backing slice into a [`crate::borrowed::Object`], allowing to access all of its data
1514 /// conveniently. The cost of parsing an object is negligible.
1615 ///
17− /// **Note** that [owned, decoded objects][git_object::owned::Object] can be created from a [`borrowed::Object`]
18− /// using [`borrowed::Object::into_owned()`].
19− pub fn decode(&self) -> Result<borrowed::Object<'_>, borrowed::Error> {
16+ /// **Note** that [owned, decoded objects][git_object::owned::Object] can be created from a [`crate::borrowed::Object`]
17+ /// using [`crate::borrowed::Object::into_owned()`].
18+ pub fn decode(&self) -> Result<git_object::borrowed::Object<'_>, git_object::borrowed::Error> {
2019 Ok(match self.kind {
21− git_object::Kind::Tree => borrowed::Object::Tree(borrowed::Tree::from_bytes(self.data)?),
22− git_object::Kind::Blob => borrowed::Object::Blob(borrowed::Blob { data: self.data }),
23− git_object::Kind::Commit => borrowed::Object::Commit(borrowed::Commit::from_bytes(self.data)?),
24− git_object::Kind::Tag => borrowed::Object::Tag(borrowed::Tag::from_bytes(self.data)?),
20+ git_object::Kind::Tree => {
21+ git_object::borrowed::Object::Tree(git_object::borrowed::Tree::from_bytes(self.data)?)
22+ }
23+ git_object::Kind::Blob => {
24+ git_object::borrowed::Object::Blob(git_object::borrowed::Blob { data: self.data })
25+ }
26+ git_object::Kind::Commit => {
27+ git_object::borrowed::Object::Commit(git_object::borrowed::Commit::from_bytes(self.data)?)
28+ }
29+ git_object::Kind::Tag => {
30+ git_object::borrowed::Object::Tag(git_object::borrowed::Tag::from_bytes(self.data)?)
31+ }
2532 })
2633 }
2734 }
git-odb/src/linked/locate.rs+2−2
@@ -1,4 +1,4 @@
1−use crate::{borrowed, compound, linked, pack};
1+use crate::{compound, linked, pack};
22
33 impl linked::Db {
44 /// Find an object as identified by [`ObjectId`][git_hash::ObjectId] and store its data in full in the provided `buffer`.
@@ -9,7 +9,7 @@ impl linked::Db { · 4 unmodified lines
99 id: impl AsRef<git_hash::oid>,
1010 buffer: &'a mut Vec<u8>,
1111 pack_cache: &mut impl pack::cache::DecodeEntry,
12− ) -> Result<Option<borrowed::Object<'a>>, compound::locate::Error> {
12+ ) -> Result<Option<crate::borrowed::Object<'a>>, compound::locate::Error> {
1313 use compound::locate::PackInfo;
1414 let id = id.as_ref();
1515 for db in self.dbs.iter() {
git-odb/src/loose/db/locate.rs+4−5
@@ -1,5 +1,4 @@
11 use crate::{
2− borrowed,
32 loose::{db::sha1_path, object::header, Db, HEADER_READ_UNCOMPRESSED_BYTES},
43 zlib,
54 };
@@ -39,7 +38,7 @@ impl Db { · 33 unmodified lines
3938 &self,
4039 id: impl AsRef<git_hash::oid>,
4140 out: &'a mut Vec<u8>,
42− ) -> Result<Option<borrowed::Object<'a>>, Error> {
41+ ) -> Result<Option<crate::borrowed::Object<'a>>, Error> {
4342 match self.locate_inner(id.as_ref(), out) {
4443 Ok(obj) => Ok(Some(obj)),
4544 Err(err) => match err {
@@ -63,7 +62,7 @@ impl Db { · 17 unmodified lines
6362 }
6463 }
6564
66− fn locate_inner<'a>(&self, id: &git_hash::oid, buf: &'a mut Vec<u8>) -> Result<borrowed::Object<'a>, Error> {
65+ fn locate_inner<'a>(&self, id: &git_hash::oid, buf: &'a mut Vec<u8>) -> Result<crate::borrowed::Object<'a>, Error> {
6766 let path = sha1_path(id, self.path.clone());
6867
6968 let mut inflate = zlib::Inflate::default();
@@ -112,7 +111,7 @@ impl Db { · 42 unmodified lines
112111 buf.copy_within(decompressed_body_bytes_sans_header, 0);
113112 buf.resize(size, 0);
114113 // TODO: assure both branches run via tests
115− Ok(borrowed::Object { kind, data: buf })
114+ Ok(crate::borrowed::Object { kind, data: buf })
116115 } else {
117116 buf.resize(bytes_read + size + header_size, 0);
118117 {
@@ -135,7 +134,7 @@ impl Db { · 16 unmodified lines
135134 };
136135 buf.copy_within(decompressed_start + header_size.., 0);
137136 buf.resize(size, 0);
138− Ok(borrowed::Object { kind, data: buf })
137+ Ok(crate::borrowed::Object { kind, data: buf })
139138 }
140139 }
141140 }
git-odb/src/pack/index/verify.rs+6−4
@@ -171,10 +171,12 @@ impl index::File { · 170 unmodified lines
171171 match object_kind {
172172 Tree | Commit | Tag => {
173173 let borrowed_object =
174− borrowed::Object::from_bytes(object_kind, buf).map_err(|err| Error::ObjectDecode {
175− source: err,
176− kind: object_kind,
177− id: index_entry.oid,
174+ git_object::borrowed::Object::from_bytes(object_kind, buf).map_err(|err| {
175+ Error::ObjectDecode {
176+ source: err,
177+ kind: object_kind,
178+ id: index_entry.oid,
179+ }
178180 })?;
179181 if let Mode::Sha1Crc32DecodeEncode = mode {
180182 let object = owned::Object::from(borrowed_object);