History

refactor

Sebastian Thiel committed 5 years ago

Commit fdc8c791 parent 29b527a3 files · +15 −21Browse files

Showing the changes to git-diff/src (2 of 3 files). Show all

Unified · Split

2 files
  1. git-diff/src/visit/changes.rs +11 −10
  2. git-diff/src/visit/mod.rs +3 −10
git-diff/src/visit/changes.rs+11−10
@@ -1,6 +1,10 @@
1−use crate::visit;
2−use crate::visit::changes::Error::Cancelled;
3−use crate::visit::record::{Action, Change, PathComponent, PathComponentUpdateMode};
1+use crate::{
2+ visit,
3+ visit::{
4+ changes::Error::Cancelled,
5+ record::{Action, Change, PathComponent, PathComponentUpdateMode},
6+ },
7+};
48 use git_hash::{oid, ObjectId};
59 use git_object::{immutable, tree};
610 use quick_error::quick_error;
@@ -22,10 +26,7 @@ quick_error! { · 15 unmodified lines
2226 }
2327 }
2428
25−impl<'a, Iter> visit::Changes<'a, Iter>
26−where
27− Iter: Iterator<Item = super::TreeEntryResult<'a>>,
28−{
29+impl<'a> visit::Changes<'a> {
2930 /// Returns the changes that need to be applied to `self` to get `other`.
3031 ///
3132 /// # Notes
@@ -36,8 +37,8 @@ where · 4 unmodified lines
3637 /// [git_cmp_rs]: https://github.com/Byron/gitoxide/blob/a4d5f99c8dc99bf814790928a3bf9649cd99486b/git-object/src/mutable/tree.rs#L52-L55
3738 ///
3839 pub fn needed_to_obtain<LocateFn>(
39− self,
40− other: Iter,
40+ mut self,
41+ other: immutable::TreeIter<'a>,
4142 _state: &mut visit::State,
4243 _locate: LocateFn,
4344 delegate: &mut impl visit::Record,
@@ -45,7 +46,7 @@ where · 1 unmodified line
4546 where
4647 LocateFn: for<'b> FnMut(&oid, &'b mut Vec<u8>) -> Option<immutable::Object<'b>>,
4748 {
48− let mut lhs_entries = self.0;
49+ let mut lhs_entries = self.0.take().unwrap_or_default();
4950 let mut rhs_entries = other;
5051
5152 let mut path_id = 0;
git-diff/src/visit/mod.rs+3−10
@@ -6,17 +6,10 @@ pub struct State { · 5 unmodified lines
66 buf2: Vec<u8>,
77 }
88
9−pub(crate) type TreeEntryResult<'a> = Result<immutable::tree::Entry<'a>, immutable::object::decode::Error>;
9+pub struct Changes<'a>(Option<immutable::TreeIter<'a>>);
1010
11−pub struct Changes<'a, Iter>(Iter)
12−where
13− Iter: Iterator<Item = TreeEntryResult<'a>>;
14−
15−impl<'a, Iter> From<Iter> for Changes<'a, Iter>
16−where
17− Iter: Iterator<Item = TreeEntryResult<'a>>,
18−{
19− fn from(v: Iter) -> Self {
11+impl<'a> From<Option<immutable::TreeIter<'a>>> for Changes<'a> {
12+ fn from(v: Option<immutable::TreeIter<'a>>) -> Self {
2013 Changes(v)
2114 }
2215 }