A result type for Sorbet. API is similar to Rust’s Result
.
sig { params(string: String).returns(Result[Integer, ArgumentError]) }
def parse_integer(string)
Result.ok(Integer(string))
rescue ArgumentError => e
Result.err(e)
end
sig { params(result: Result[String, T.untyped]).void }
def print_ok_val(result)
if result.ok?
puts(result.unwrap)
end
end
result = Result.ok(1) # Shortcut for `Result::Ok.new(1)`
print_ok_val(result.map(&:to_s))
result = parse_integer("hi")
print_ok_val(result.map(&:to_s))
All files licensed CC0.