From 2b62a80202e2855d47f20d271842e0e9aec6d8e2 Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Fri, 28 Oct 2011 18:09:48 -0700 Subject: stdlib: Add result::chain for composing results --- src/test/stdtest/result.rs | 17 +++++++++++++++++ src/test/stdtest/stdtest.rc | 1 + 2 files changed, 18 insertions(+) create mode 100644 src/test/stdtest/result.rs (limited to 'src/test/stdtest') diff --git a/src/test/stdtest/result.rs b/src/test/stdtest/result.rs new file mode 100644 index 00000000000..9a7b390a523 --- /dev/null +++ b/src/test/stdtest/result.rs @@ -0,0 +1,17 @@ +import std::result; + +fn op1() -> result::t { result::ok(666) } + +fn op2(&&i: int) -> result::t { result::ok(i as uint + 1u) } + +fn op3() -> result::t { result::err("sadface") } + +#[test] +fn chain_success() { + assert result::get(result::chain(op1(), op2)) == 667u; +} + +#[test] +fn chain_failure() { + assert result::get_err(result::chain(op3(), op2)) == "sadface"; +} \ No newline at end of file diff --git a/src/test/stdtest/stdtest.rc b/src/test/stdtest/stdtest.rc index b2b7522c2e1..c47b85c65f8 100644 --- a/src/test/stdtest/stdtest.rc +++ b/src/test/stdtest/stdtest.rc @@ -31,6 +31,7 @@ mod test; mod uint; mod float; mod math; +mod result; // Local Variables: // mode: rust -- cgit 1.4.1-3-g733a5