fn foo() -> Result<int, SomeError> { let result = bar()?; let result2 = baz()?; let result3 = bazz()?; Ok(result + result2 + result3) }
(Cf. https://doc.rust-lang.org/edition-guide/rust-2018/error-hand...)
fn foo() -> Result<int, SomeError> { let result = match bar() { Ok(val) => val, Err(err) => return Err(err.into()), }; let result2 = match baz() { Ok(val) => val, Err(err) => return Err(err.into()), }; let result3 = match bazz() { Ok(val) => val, Err(err) => return Err(err.into()), }; Ok(result + result2 + result3) }