///|
test {
let _result : Result[Int, String] = Ok(42)
let _error : Result[Int, String] = Err("Error message")
}///|
test {
let _result : Result[String, Unit] = Ok("yes")
let _error : Result[Int, String] = Err("error")
}///|
test {
let result : Result[Int, String] = Ok(42)
let is_ok = result is Ok(_)
@test.assert_eq(is_ok, true)
let is_err = result is Err(_)
@test.assert_eq(is_err, false)
}///|
test {
let result : Result[Int, Unit] = Ok(33)
let val = match result {
Ok(value) => value
Err(_) => -1
}
@test.assert_eq(val, 33)
}///|
test {
let result : Result[Int, String] = Ok(42)
let value = result.unwrap()
@test.assert_eq(value, 42)
}///|
test {
let result : Result[Int, String] = Err("error")
let value = result.or(0)
@test.assert_eq(value, 0)
}///|
test {
let result : Result[Int, String] = Err("error")
let value = result.or_else(() => 0)
@test.assert_eq(value, 0)
}///|
test {
let result : Result[Int, String] = Ok(42)
let new_result = result.map(x => x + 1)
@debug.assert_eq(new_result, Ok(43))
}///|
test {
let result : Result[Int, String] = Err("error")
let new_result = result.map_err(x => x + "!")
@debug.assert_eq(new_result, Err("error!"))
}///|
test {
let result : Result[Int, String] = Ok(42)
let option = result.to_option()
assert_true(option == Some(42))
let result1 : Result[Int, String] = Err("error")
let option1 = result1.to_option()
assert_true(option1 == None)
}///|
test {
let result : Result[Result[Int, String], String] = Ok(Ok(42))
let flattened = result.flatten()
@debug.assert_eq(flattened, Ok(42))
}///|
test {
let result : Result[Int, String] = Ok(42)
let new_result = result.bind(x => Ok(x + 1))
@debug.assert_eq(new_result, Ok(43))
}#deprecated("use `match result { Ok(value) => ok(value); Err(error) => err(error) }` instead")
fn[T, E, V] Result::fold(self : Result[T, E], ok : (T) -> V, err : (E) -> V) -> V#deprecated("use `x is Err(_)` instead")
fn[T, E] Result::is_err(self : Result[T, E]) -> Bool#deprecated("use `x is Ok(_)` instead")
fn[T, E] Result::is_ok(self : Result[T, E]) -> Bool#deprecated("Use `Err(value)` instead")
fn[T, E] err(value : E) -> Result[T, E]#deprecated("Use `Ok(value)` instead")
fn[T, E] ok(value : T) -> Result[T, E]Install
Installed by default