Prefer use of owned values in examples

This commit is contained in:
Kornel 2018-05-26 12:18:24 +01:00
parent c45ae9ea3a
commit 01e82f111e
2 changed files with 37 additions and 23 deletions

View File

@ -276,17 +276,31 @@ const DISPLACEMENT_THRESHOLD: usize = 128;
/// ``` /// ```
/// use std::collections::HashMap; /// use std::collections::HashMap;
/// ///
/// // type inference lets us omit an explicit type signature (which /// // Type inference lets us omit an explicit type signature (which
/// // would be `HashMap<&str, &str>` in this example). /// // would be `HashMap<String, String>` in this example).
/// let mut book_reviews = HashMap::new(); /// let mut book_reviews = HashMap::new();
/// ///
/// // review some books. /// // Review some books.
/// book_reviews.insert("Adventures of Huckleberry Finn", "My favorite book."); /// book_reviews.insert(
/// book_reviews.insert("Grimms' Fairy Tales", "Masterpiece."); /// "Adventures of Huckleberry Finn".to_string(),
/// book_reviews.insert("Pride and Prejudice", "Very enjoyable."); /// "My favorite book.".to_string(),
/// book_reviews.insert("The Adventures of Sherlock Holmes", "Eye lyked it alot."); /// );
/// book_reviews.insert(
/// "Grimms' Fairy Tales".to_string(),
/// "Masterpiece.".to_string(),
/// );
/// book_reviews.insert(
/// "Pride and Prejudice".to_string(),
/// "Very enjoyable.".to_string(),
/// );
/// book_reviews.insert(
/// "The Adventures of Sherlock Holmes".to_string(),
/// "Eye lyked it alot.".to_string(),
/// );
/// ///
/// // check for a specific one. /// // Check for a specific one.
/// // When collections store owned values (String), they can still be
/// // queried using references (&str).
/// if !book_reviews.contains_key("Les Misérables") { /// if !book_reviews.contains_key("Les Misérables") {
/// println!("We've got {} reviews, but Les Misérables ain't one.", /// println!("We've got {} reviews, but Les Misérables ain't one.",
/// book_reviews.len()); /// book_reviews.len());
@ -295,16 +309,16 @@ const DISPLACEMENT_THRESHOLD: usize = 128;
/// // oops, this review has a lot of spelling mistakes, let's delete it. /// // oops, this review has a lot of spelling mistakes, let's delete it.
/// book_reviews.remove("The Adventures of Sherlock Holmes"); /// book_reviews.remove("The Adventures of Sherlock Holmes");
/// ///
/// // look up the values associated with some keys. /// // Look up the values associated with some keys.
/// let to_find = ["Pride and Prejudice", "Alice's Adventure in Wonderland"]; /// let to_find = ["Pride and Prejudice", "Alice's Adventure in Wonderland"];
/// for book in &to_find { /// for &book in &to_find {
/// match book_reviews.get(book) { /// match book_reviews.get(book) {
/// Some(review) => println!("{}: {}", book, review), /// Some(review) => println!("{}: {}", book, review),
/// None => println!("{} is unreviewed.", book) /// None => println!("{} is unreviewed.", book)
/// } /// }
/// } /// }
/// ///
/// // iterate over everything. /// // Iterate over everything.
/// for (book, review) in &book_reviews { /// for (book, review) in &book_reviews {
/// println!("{}: \"{}\"", book, review); /// println!("{}: \"{}\"", book, review);
/// } /// }

View File

@ -49,14 +49,14 @@ use super::map::{self, HashMap, Keys, RandomState};
/// ``` /// ```
/// use std::collections::HashSet; /// use std::collections::HashSet;
/// // Type inference lets us omit an explicit type signature (which /// // Type inference lets us omit an explicit type signature (which
/// // would be `HashSet<&str>` in this example). /// // would be `HashSet<String>` in this example).
/// let mut books = HashSet::new(); /// let mut books = HashSet::new();
/// ///
/// // Add some books. /// // Add some books.
/// books.insert("A Dance With Dragons"); /// books.insert("A Dance With Dragons".to_string());
/// books.insert("To Kill a Mockingbird"); /// books.insert("To Kill a Mockingbird".to_string());
/// books.insert("The Odyssey"); /// books.insert("The Odyssey".to_string());
/// books.insert("The Great Gatsby"); /// books.insert("The Great Gatsby".to_string());
/// ///
/// // Check for a specific one. /// // Check for a specific one.
/// if !books.contains("The Winds of Winter") { /// if !books.contains("The Winds of Winter") {
@ -80,17 +80,17 @@ use super::map::{self, HashMap, Keys, RandomState};
/// ``` /// ```
/// use std::collections::HashSet; /// use std::collections::HashSet;
/// #[derive(Hash, Eq, PartialEq, Debug)] /// #[derive(Hash, Eq, PartialEq, Debug)]
/// struct Viking<'a> { /// struct Viking {
/// name: &'a str, /// name: String,
/// power: usize, /// power: usize,
/// } /// }
/// ///
/// let mut vikings = HashSet::new(); /// let mut vikings = HashSet::new();
/// ///
/// vikings.insert(Viking { name: "Einar", power: 9 }); /// vikings.insert(Viking { name: "Einar".to_string(), power: 9 });
/// vikings.insert(Viking { name: "Einar", power: 9 }); /// vikings.insert(Viking { name: "Einar".to_string(), power: 9 });
/// vikings.insert(Viking { name: "Olaf", power: 4 }); /// vikings.insert(Viking { name: "Olaf".to_string(), power: 4 });
/// vikings.insert(Viking { name: "Harald", power: 8 }); /// vikings.insert(Viking { name: "Harald".to_string(), power: 8 });
/// ///
/// // Use derived implementation to print the vikings. /// // Use derived implementation to print the vikings.
/// for x in &vikings { /// for x in &vikings {
@ -104,7 +104,7 @@ use super::map::{self, HashMap, Keys, RandomState};
/// use std::collections::HashSet; /// use std::collections::HashSet;
/// ///
/// fn main() { /// fn main() {
/// let viking_names: HashSet<&str> = /// let viking_names: HashSet<&'static str> =
/// [ "Einar", "Olaf", "Harald" ].iter().cloned().collect(); /// [ "Einar", "Olaf", "Harald" ].iter().cloned().collect();
/// // use the values stored in the set /// // use the values stored in the set
/// } /// }