assert(expected(42).orElse(0) == 42); assert(expected(42).orElse!(() => 0) == 42); assert(unexpected!int("foo").orElse(0) == 0); assert(unexpected!int("foo").orElse!(() => 0) == 0); assert(expected(42).orElse!(() => expected(0)) == 42); assert(unexpected!int("foo").orElse!(() => expected(42)) == 42); assert(unexpected!int("foo").orElse!(() => unexpected!int("bar")).error == "bar"); // with void value assert(expected().orElse!(() => unexpected("foo"))); assert(unexpected("foo").orElse!(() => expected())); assert(unexpected("foo").orElse!(() => unexpected("bar")).error == "bar");
Returns the value contained within the Expected _or else_ another value if there's an error. This function can be used for control flow based on Expected values.