diff --git a/andthenchaintest/Cargo.lock b/andthenchaintest/Cargo.lock new file mode 100644 index 0000000..5faf678 --- /dev/null +++ b/andthenchaintest/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "andthenchaintest" +version = "0.1.0" diff --git a/andthenchaintest/Cargo.toml b/andthenchaintest/Cargo.toml new file mode 100644 index 0000000..ea4358f --- /dev/null +++ b/andthenchaintest/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "andthenchaintest" +version = "0.1.0" +edition = "2021" + +[dependencies] diff --git a/andthenchaintest/src/main.rs b/andthenchaintest/src/main.rs new file mode 100644 index 0000000..2d17f0b --- /dev/null +++ b/andthenchaintest/src/main.rs @@ -0,0 +1,10 @@ +fn main() { + let value: Result = Err(20) + .map_err(|_: u32| 30) + .and_then(|_old: u32| Err(40)); + + // Note: Order does not affect these results; even if `.map_err()` comes before `.and_then()`, + // when `.and_then()` returns an error, it is captured by `.map_err()` again. + + println!("{:?}", value); +}