Skip to content

Commit 097209c

Browse files
committed
refactor (#26)
1 parent 02cdb2e commit 097209c

File tree

2 files changed

+19
-17
lines changed

2 files changed

+19
-17
lines changed

src/index/diff/delegate.rs

Lines changed: 9 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,7 @@ impl Delegate {
3737
if let Some(obj) = entry_data(entry_mode, id)? {
3838
for line in obj.data.lines() {
3939
let version = version_from_json_line(line, change.location)?;
40-
self.changes.push(if version.yanked {
41-
Change::Yanked(version)
42-
} else {
43-
Change::Added(version)
44-
});
40+
self.changes.push(version.into());
4541
}
4642
}
4743
}
@@ -81,13 +77,6 @@ impl Delegate {
8177
.iter()
8278
.map(|&line| input.interner[line].as_bstr())
8379
.peekable();
84-
let mut remember = |version: CrateVersion| {
85-
self.changes.push(if version.yanked {
86-
Change::Yanked(version)
87-
} else {
88-
Change::Added(version)
89-
});
90-
};
9180
'outer: loop {
9281
match (lines_before.peek().is_some(), lines_after.peek().is_some())
9382
{
@@ -108,7 +97,7 @@ impl Delegate {
10897
(false, true) => {
10998
for inserted in lines_after {
11099
match version_from_json_line(inserted, location) {
111-
Ok(version) => remember(version),
100+
Ok(version) => self.changes.push(version.into()),
112101
Err(e) => {
113102
err = Some(e);
114103
break;
@@ -130,7 +119,7 @@ impl Delegate {
130119
if removed_version.yanked
131120
!= inserted_version.yanked
132121
{
133-
remember(inserted_version);
122+
self.changes.push(inserted_version.into());
134123
}
135124
}
136125
Err(e) => {
@@ -159,13 +148,16 @@ impl Delegate {
159148
Some(err) => Err(err),
160149
None => {
161150
if !self.deleted_version_ids.is_empty() {
162-
let deleted_version_ids = &self.deleted_version_ids;
151+
let deleted_version_ids = &mut self.deleted_version_ids;
163152
self.changes.retain(|change| match change {
164153
Change::Added(v) | Change::Yanked(v) => {
165-
!deleted_version_ids.contains(&v.id())
154+
!deleted_version_ids.remove(&v.id())
166155
}
167156
Change::Deleted { .. } => true,
168-
})
157+
});
158+
if !self.deleted_version_ids.is_empty() {
159+
dbg!(self.deleted_version_ids.len());
160+
}
169161
}
170162
Ok(self.changes)
171163
}

src/types.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,16 @@ impl CrateVersion {
120120
}
121121
}
122122

123+
impl From<CrateVersion> for Change {
124+
fn from(v: CrateVersion) -> Self {
125+
if v.yanked {
126+
Change::Yanked(v)
127+
} else {
128+
Change::Added(v)
129+
}
130+
}
131+
}
132+
123133
/// A single dependency of a specific crate version
124134
#[derive(
125135
Clone, serde::Serialize, serde::Deserialize, Ord, PartialOrd, Eq, PartialEq, Debug, Hash,

0 commit comments

Comments
 (0)