Module std/result.vv
The result module handles operations that can succeed with a value (ok) or fail with an error (error).
Example:
import result from "std/result.vv"
let r = result.ok(42)
if result.is_ok(r)
console.print(r.value)
end
Table of Contents
Exports
fun ok(value)
Returns a successful result containing value.
Example:
let r = result.ok(10)
fun error(value)
Returns a failure result containing an error value.
Example:
let e = result.error("something went wrong")
fun is_ok(v)
Checks if the result is successful (ok).
Example:
result.is_ok(result.ok(1)) // true
result.is_ok(result.error(1)) // false
fun is_error(v)
Checks if the result is a failure (error).
Example:
result.is_error(result.error(1)) // true
result.is_error(result.ok(1)) // false
fun map(v, f)
Applies f to the value of an ok result.
Example:
result.map(result.ok(2), fun(x) return x * 2 end) // ok(4)
fun flat_map(v, f)
Applies a function f that returns a result to the value of an ok result.
Example:
result.flat_map(result.ok(1), fun(x) return result.ok(x + 1) end) // ok(2)
fun map_error(v, f)
Applies f to the value of an error result.
Example:
result.map_error(result.error("fail"), fun(e) return e + "!" end) // error("fail!")
fun flat_map_error(v, f)
Applies a function f that returns a result to the value of an error result.
Example:
result.flat_map_error(result.error(1), fun(e) return result.error(e + 1) end) // error(2)
fun get_or(v, default_value)
Returns the ok value if it exists, otherwise returns default_value.
Example:
result.get_or(result.ok(1), 0) // 1
result.get_or(result.error(1), 0) // 0
fun get_error_or(v, default_value)
Returns the error value if it exists, otherwise returns default_value.
Example:
result.get_error_or(result.error("fail"), "ok") // "fail"
fun to_option(v)
Converts a result into an option.
ok(v) becomes some(v), error(v) becomes none.
Example:
result.to_option(result.ok(1)) // some(1)
result.to_option(result.error(1)) // none
fun from_option(v, error_value)
Converts an option into a result.
some(v) becomes ok(v), none becomes error(error_value).
Example:
result.from_option(option.some(1), "fail") // ok(1)
result.from_option(option.none, "fail") // error("fail")