1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
//! # MapOk
//!
//! This crate provides the [`MapOk`] trait that allows mapping [`Ok`] variants in an iterator to a different type.
//!
//! # Examples
//!
//! ```
//! use std::num::ParseIntError;
//! use std::str::FromStr;
//! use map_ok::MapOk;
//!
//! struct Person {
//! age: u8,
//! }
//!
//! impl Person {
//! fn new(age: u8) -> Self {
//! Person { age }
//! }
//! }
//!
//! impl FromStr for Person {
//! type Err = ParseIntError;
//!
//! fn from_str(s: &str) -> Result<Self, Self::Err> {
//! let age = u8::from_str(s)?;
//! Ok(Person::new(age))
//! }
//! }
//!
//! let input = vec!["10", "20", "x", "30"];
//! let mut iterator = input.into_iter()
//! .map(Person::from_str)
//! .map_ok(|p| p.age);
//!
//! assert_eq!(iterator.next(), Some(Ok(10)));
//! assert_eq!(iterator.next(), Some(Ok(20)));
//! assert!(iterator.next().unwrap().is_err());
//! assert_eq!(iterator.next(), Some(Ok(30)));
//! assert_eq!(iterator.next(), None);
//! ```
pub use ;
pub use ;
/// Commonly used imports.