1use std::ops::Add;
2use unit_ext::*;
3
4fn main() {
5 Some(10)
6 .filter(|n| n > &5)
7 .map(|n| n * 2)
8 .or_else(|| println!("Value too small").ret_none());
9
10 Some(10)
11 .map(|v| println!("Some({v})").ret(v + 10))
12 .or_else(|| println!("Default value").ret_default());
13
14 Some([1, 2, 3, 4])
15 .map(|mut arr| arr.clone_from_slice(&[4, 3, 2, 1]).ret(arr));
16
17 "10".parse::<u8>().map_or_else(
18 |e| eprintln!("{e}").ret_none(),
19 |v| println!("Got here").ret_some(v.add(10)),
20 );
21
22 match "15".parse::<u8>() {
23 Ok(v) => v.add(15).into(),
24 Err(e) => eprintln!("{e}").ret_none(),
25 };
26
27 "15".parse::<u8>()
29 .inspect_err(|e| eprintln!("{e}"))
30 .ok()
31 .map(|v| v + 15);
32}