Skip to content

Commit 1192018

Browse files
committed
handle some old crates without descriptions
1 parent 4fd44ca commit 1192018

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

src/crates.rs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,7 @@ struct Crate {
1818
#[serde(rename = "updated_at")]
1919
updated: String,
2020
downloads: u64,
21-
#[serde(default)]
22-
description: String,
21+
description: Option<String>,
2322
documentation: Option<String>,
2423
}
2524

@@ -29,13 +28,16 @@ fn get_crate(args: &Args) -> Result<Option<Crate>, Error> {
2928
.get("query")
3029
.ok_or("Unable to retrieve param: query")?;
3130

32-
info!("searching for crate `{}`", query);
31+
let mut query_iter = query.splitn(2, "::");
32+
let crate_name = query_iter.next().unwrap();
33+
34+
info!("searching for crate `{}`", crate_name);
3335

3436
let crate_list = args
3537
.http
3638
.get("https://crates.io/api/v1/crates")
3739
.header(header::USER_AGENT, USER_AGENT)
38-
.query(&[("q", query)])
40+
.query(&[("q", crate_name)])
3941
.send()?
4042
.json::<Crates>()?;
4143

@@ -48,7 +50,7 @@ pub fn search(args: Args) -> Result<(), Error> {
4850
m.embed(|e| {
4951
e.title(&krate.name)
5052
.url(format!("https://crates.io/crates/{}", krate.id))
51-
.description(&krate.description)
53+
.description(krate.description.unwrap_or_default())
5254
.field("version", &krate.version, true)
5355
.field("downloads", &krate.downloads, true)
5456
.timestamp(krate.updated.as_str())

0 commit comments

Comments
 (0)