Skip to content

Commit

Permalink
Auto merge of rust-lang#51142 - nickbabcock:doc-inspect, r=frewsxcv
Browse files Browse the repository at this point in the history
Document additional use case for iter::inspect

Adds docs for `iter::inspect` showing the non-debug use case

Closes rust-lang#49564
  • Loading branch information
bors committed May 29, 2018
2 parents fe5c45b + 18cf47b commit 4f6d9bf
Showing 1 changed file with 29 additions and 2 deletions.
31 changes: 29 additions & 2 deletions src/libcore/iter/iterator.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1169,8 +1169,9 @@ pub trait Iterator {
/// happening at various parts in the pipeline. To do that, insert
/// a call to `inspect()`.
///
/// It's much more common for `inspect()` to be used as a debugging tool
/// than to exist in your final code, but never say never.
/// It's more common for `inspect()` to be used as a debugging tool than to
/// exist in your final code, but applications may find it useful in certain
/// situations when errors need to be logged before being discarded.
///
/// # Examples
///
Expand Down Expand Up @@ -1210,6 +1211,32 @@ pub trait Iterator {
/// about to filter: 3
/// 6
/// ```
///
/// Logging errors before discarding them:
///
/// ```
/// let lines = ["1", "2", "a"];
///
/// let sum: i32 = lines
/// .iter()
/// .map(|line| line.parse::<i32>())
/// .inspect(|num| {
/// if let Err(ref e) = *num {
/// println!("Parsing error: {}", e);
/// }
/// })
/// .filter_map(Result::ok)
/// .sum();
///
/// println!("Sum: {}", sum);
/// ```
///
/// This will print:
///
/// ```text
/// Parsing error: invalid digit found in string
/// Sum: 3
/// ```
#[inline]
#[stable(feature = "rust1", since = "1.0.0")]
fn inspect<F>(self, f: F) -> Inspect<Self, F> where
Expand Down

0 comments on commit 4f6d9bf

Please sign in to comment.