Skip to content

Commit 868273b

Browse files
sypharGuillaumeGomez
authored andcommitted
get rid of Vec<_> newtype
1 parent ce44566 commit 868273b

File tree

3 files changed

+27
-28
lines changed

3 files changed

+27
-28
lines changed

src/db/add_package.rs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,12 @@ pub(crate) async fn finish_release(
4848
source_size: u64,
4949
) -> Result<()> {
5050
debug!("updating release data");
51-
let dependencies: ReleaseDependencyList = metadata_pkg.dependencies.clone().into();
51+
let dependencies: ReleaseDependencyList = metadata_pkg
52+
.dependencies
53+
.iter()
54+
.cloned()
55+
.map(Into::into)
56+
.collect();
5257
let rustdoc = get_rustdoc(metadata_pkg, source_dir).unwrap_or(None);
5358
let readme = get_readme(metadata_pkg, source_dir).unwrap_or(None);
5459
let features = get_features(metadata_pkg);

src/db/types/dependencies.rs

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -55,25 +55,20 @@ impl Serialize for ReleaseDependency {
5555
}
5656
}
5757

58-
#[derive(Debug, Clone, Serialize, Deserialize, Default, Deref)]
59-
#[serde(transparent)]
60-
pub(crate) struct ReleaseDependencyList(Vec<ReleaseDependency>);
61-
62-
impl<I> From<I> for ReleaseDependencyList
63-
where
64-
I: IntoIterator<Item = Dependency>,
65-
{
66-
fn from(deps: I) -> Self {
67-
Self(deps.into_iter().map(ReleaseDependency).collect())
58+
impl From<Dependency> for ReleaseDependency {
59+
fn from(dep: Dependency) -> Self {
60+
ReleaseDependency(dep)
6861
}
6962
}
7063

71-
impl ReleaseDependencyList {
72-
pub(crate) fn into_iter_dependencies(self) -> impl Iterator<Item = Dependency> {
73-
self.0.into_iter().map(|rd| rd.0)
64+
impl From<ReleaseDependency> for Dependency {
65+
fn from(dep: ReleaseDependency) -> Self {
66+
dep.0
7467
}
7568
}
7669

70+
pub(crate) type ReleaseDependencyList = Vec<ReleaseDependency>;
71+
7772
#[cfg(test)]
7873
mod tests {
7974
use super::*;
@@ -117,7 +112,7 @@ mod tests {
117112
expected_optional: bool,
118113
) -> Result<()> {
119114
let deps: ReleaseDependencyList = serde_json::from_str(input)?;
120-
let [dep] = deps.0.as_slice() else {
115+
let [dep] = deps.as_slice() else {
121116
panic!("expected exactly one dependency");
122117
};
123118

src/web/crate_details.rs

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -234,19 +234,18 @@ impl CrateDetails {
234234

235235
let parsed_license = krate.license.as_deref().map(super::licenses::parse_license);
236236

237-
let dependencies = if let Some(value) = krate.dependencies {
238-
match serde_json::from_value::<ReleaseDependencyList>(value) {
239-
Ok(list) => list.into_iter_dependencies().collect(),
240-
Err(_) => {
241-
// NOTE: we sometimes have invalid semver-requirement strings the database
242-
// (at the time writing, 14 releases out of 2 million).
243-
// We silently ignore those here.
244-
Vec::new()
245-
}
246-
}
247-
} else {
248-
Vec::new()
249-
};
237+
let dependencies: Vec<Dependency> = krate
238+
.dependencies
239+
.map(serde_json::from_value::<ReleaseDependencyList>)
240+
.transpose()
241+
// NOTE: we sometimes have invalid semver-requirement strings the database
242+
// (at the time writing, 14 releases out of 2 million).
243+
// We silently ignore those here.
244+
.unwrap_or_default()
245+
.unwrap_or_default()
246+
.into_iter()
247+
.map(Into::into)
248+
.collect();
250249

251250
let mut crate_details = CrateDetails {
252251
name: krate.name,

0 commit comments

Comments
 (0)