///|
test {
let some : Int? = Some(42)
let none : String? = None
debug_inspect(some, content="Some(42)")
debug_inspect(none, content="None")
}///|
test {
let i = Some(42)
let j = match i {
Some(value) => value
None => abort("unreachable")
}
@test.assert_eq(j, 42)
}///|
test {
let some : Int? = Some(42)
let value = some.unwrap() // 42
@test.assert_eq(value, 42)
}///|
test {
let none : Int? = None
let value = none.unwrap_or(0) // 0
@test.assert_eq(value, 0)
}///|
test {
let none : Int? = None
let value = none.unwrap_or_else(() => 0) // 0
@test.assert_eq(value, 0)
}///|
test {
let some : Int? = Some(42)
let new_some = some.map((value : Int) => value + 1) // Some(43)
assert_true(new_some == Some(43))
}///|
test {
let some : Int? = Some(42)
let new_some = some.filter((value : Int) => value > 40) // Some(42)
let none = some.filter((value : Int) => value > 50) // None
assert_true(new_some == Some(42))
assert_true(none == None)
}///|
test {
let some : Int? = Some(42)
let new_some = some.bind((value : Int) => Some(value + 1)) // Some(43)
assert_true(new_some == Some(43))
}///|
test {
let some : Int?? = Some(Some(42))
let new_some = some.bind(fn(x) { x }) // Some(42)
assert_true(new_some == Some(42))
let none : Int?? = Some(None)
let new_none = none.bind(fn(x) { x }) // None
assert_true(new_none == None)
}#deprecated("Use `if !condition { Some(value()) } else { None }` instead")
fn[T] unless(condition : Bool, value : () -> T) -> T?#deprecated("Use `if condition { Some(value()) } else { None }` instead")
fn[T] when(condition : Bool, value : () -> T) -> T?Install
Installed by default