@@ -3054,18 +3054,31 @@ pub trait Itertools : Iterator {
3054
3054
/// of times it appears,
3055
3055
/// determining identity using a keying function.
3056
3056
///
3057
- /// # Examples
3058
3057
/// ```
3059
- /// # use itertools::Itertools;
3060
- /// # use std::collections::HashMap;
3061
- /// let counts: HashMap<usize, usize> = vec![
3062
- /// (1, "foo"), (1, "bar"), (1, "baz"),
3063
- /// (3, "spam"), (3, "eggs"), (5, "foo")
3064
- /// ].into_iter().counts_by(|(fst,snd)| fst);
3065
- /// assert_eq!(counts[&1], 3);
3066
- /// assert_eq!(counts[&3], 2);
3067
- /// assert_eq!(counts[&5], 1);
3068
- /// assert_eq!(counts.get(&0), None);
3058
+ /// struct Character {
3059
+ /// first_name: &'static str,
3060
+ /// last_name: &'static str,
3061
+ /// }
3062
+ ///
3063
+ /// let characters =
3064
+ /// vec![
3065
+ /// Character { first_name: "Amy", last_name: "Pond" },
3066
+ /// Character { first_name: "Amy", last_name: "Wong" },
3067
+ /// Character { first_name: "Amy", last_name: "Santiago" },
3068
+ /// Character { first_name: "James", last_name: "Bond" },
3069
+ /// Character { first_name: "James", last_name: "Sullivan" },
3070
+ /// Character { first_name: "James", last_name: "Norington" },
3071
+ /// Character { first_name: "James", last_name: "Kirk" },
3072
+ /// ];
3073
+ ///
3074
+ /// let first_name_frequency =
3075
+ /// characters
3076
+ /// .into_iter()
3077
+ /// .counts_by(|c| c.first_name);
3078
+ ///
3079
+ /// assert_eq!(first_name_frequency["Amy"], 3);
3080
+ /// assert_eq!(first_name_frequency["James"], 4);
3081
+ /// assert_eq!(first_name_frequency.contains_key("Asha"), false);
3069
3082
/// ```
3070
3083
#[ cfg( feature = "use_std" ) ]
3071
3084
fn counts_by < K , F > ( self , f : F ) -> HashMap < K , usize >
0 commit comments