diff options
| -rw-r--r-- | src/libcore/iter/traits.rs | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/libcore/iter/traits.rs b/src/libcore/iter/traits.rs index 2af129a67bd..7ef50396c82 100644 --- a/src/libcore/iter/traits.rs +++ b/src/libcore/iter/traits.rs @@ -196,6 +196,23 @@ pub trait FromIterator<A>: Sized { /// assert_eq!(i as i32, n); /// } /// ``` +/// +/// It is common to use `IntoIterator` as a trait bound. This allows +/// the input collection type to change, so long as it is still an +/// iterator. Additional bounds can be specified by restricting on +/// `Item`: +/// +/// ```rust +/// fn collect_as_strings<T>(collection: T) -> Vec<String> +/// where T: IntoIterator, +/// T::Item : std::fmt::Debug, +/// { +/// collection +/// .into_iter() +/// .map(|item| format!("{:?}", item)) +/// .collect() +/// } +/// ``` #[stable(feature = "rust1", since = "1.0.0")] pub trait IntoIterator { /// The type of the elements being iterated over. |
