Skip to content

Commit ca050b0

Browse files
committed
don't take an owned value in table
1 parent e54f601 commit ca050b0

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

crates/metadata/lib.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
#![warn(missing_docs)]
2-
// N.B. requires nightly rustdoc to document until intra-doc links are stabilized.
32
//! Collect information that allows you to build a crate the same way that docs.rs would.
43
//!
54
//! This library is intended for use in docs.rs and crater, but might be helpful to others.
@@ -303,27 +302,28 @@ impl std::str::FromStr for Metadata {
303302
_ => None,
304303
};
305304

306-
fn table(mut manifest: Table, table_name: &str) -> Option<Table> {
307-
match manifest.remove(table_name) {
305+
fn table<'a>(manifest: &'a Table, table_name: &str) -> Option<&'a Table> {
306+
match manifest.get(table_name) {
308307
Some(Value::Table(table)) => Some(table),
309308
_ => None,
310309
}
311310
}
312311

313312
let plain_table = manifest
314-
.clone()
313+
.as_ref()
315314
.and_then(|t| table(t, "package"))
316315
.and_then(|t| table(t, "metadata"))
317316
.and_then(|t| table(t, "docs"))
318317
.and_then(|t| table(t, "rs"));
319318
let quoted_table = manifest
319+
.as_ref()
320320
.and_then(|t| table(t, "package"))
321321
.and_then(|t| table(t, "metadata"))
322322
.and_then(|t| table(t, "docs.rs"));
323323
let mut metadata = if let Some(table) = plain_table {
324-
Value::Table(table).try_into()?
324+
Value::Table(table.clone()).try_into()?
325325
} else if let Some(table) = quoted_table {
326-
Value::Table(table).try_into()?
326+
Value::Table(table.clone()).try_into()?
327327
} else {
328328
Metadata::default()
329329
};

0 commit comments

Comments
 (0)