Result Reference
A Result represents either success (Ok) or failure (Err), used for error handling without exceptions.
Result is an abstract base class with two concrete subclasses:
Ok- represents a successful valueErr- represents an error value
var success = Ok(42);var failure = Err("Something went wrong");Methods
Section titled “Methods”Returns the error value if Err, otherwise returns nil.
var result = Err("Something went wrong");println(result.err()); // "Something went wrong"
var success = Ok(42);println(success.err()); // nilParameters
Section titled “Parameters”None
Returns
Section titled “Returns”dyn! - The error value or nil
expect
Section titled “expect”Returns the success value if Ok, otherwise panics with a custom message.
var result = Ok(42);var value = result.expect("Expected a valid number"); // 42
var error = Err("original error");// var value = error.expect("Custom error message"); // Panics with "Custom error message"Parameters
Section titled “Parameters”- message:
String- The error message to display if the result isErr
Returns
Section titled “Returns”dyn! - The success value
Throws
Section titled “Throws”Throws with the provided message if the result is Err
flat_map
Section titled “flat_map”Transforms the success value with a function that returns a Result, otherwise returns the error unchanged.
var result = Ok(5);var new_result = result.flat_map((x) -> Ok(x * 2)); // Ok(10)
var error = Err("error");var still_error = error.flat_map((x) -> Ok(x * 2)); // Err("error")Parameters
Section titled “Parameters”- transform:
(dyn!) -> Result- A function that takes the success value and returns a newResult
Returns
Section titled “Returns”Result - The result from the transform function, or the original error
if_err
Section titled “if_err”Calls the provided function if the Result is Err.
var result = Err("error");var maybe_value = result.if_err((err) -> println(err));Parameters
Section titled “Parameters”callback: (dyn!) -> nil - A callback that will be called if the Result is Err.
Returns
Section titled “Returns”Result - The instance of the Result object.
Calls the provided function if the Result is Ok.
var result = Ok("Message");var maybe_value = result.if_ok((message) -> println(message));Parameters
Section titled “Parameters”callback: (dyn!) -> nil - A callback that will be called if the Result is Ok.
Returns
Section titled “Returns”Result - The instance of the Result object.
is_err
Section titled “is_err”Returns true if the result is Err.
var result = Err("error");println(result.is_err()); // trueParameters
Section titled “Parameters”None
Returns
Section titled “Returns”Boolean - true if the result is Err, false otherwise
Returns true if the result is Ok.
var result = Ok(42);println(result.is_ok()); // trueParameters
Section titled “Parameters”None
Returns
Section titled “Returns”Boolean - true if the result is Ok, false otherwise
Transforms the success value if Ok, otherwise returns the error unchanged.
var result = Ok(5);var doubled = result.map((x) -> x * 2); // Ok(10)
var error = Err("error");var still_error = error.map((x) -> x * 2); // Err("error")Parameters
Section titled “Parameters”- transform:
(dyn!) -> dyn!- A function that transforms the success value
Returns
Section titled “Returns”Result - A new Result with the transformed value, or the original error
map_err
Section titled “map_err”Transforms the error value if Err, otherwise returns the success unchanged.
var result = Ok(42);var still_ok = result.map_err((err) -> "New " + err); // Ok(42)
var error = Err("error");var new_error = error.map_err((err) -> "New " + err); // Err("New error")Parameters
Section titled “Parameters”- transform:
(dyn!) -> Err- A function that transforms the error value
Returns
Section titled “Returns”Result - The original success, or a new Result with the transformed error
Returns the success value if Ok, otherwise returns nil.
var result = Ok(42);println(result.ok()); // 42
var error = Err("error");println(error.ok()); // nilParameters
Section titled “Parameters”None
Returns
Section titled “Returns”dyn! - The success value or nil
or_else
Section titled “or_else”Returns the current result if Ok, otherwise calls the provided function and returns its result.
var result = Ok(42);var new_result = result.or_else(() -> Ok(0)); // Ok(42)
var error = Err("error");var new_result = error.or_else(() -> Ok(0)); // Ok(0)Parameters
Section titled “Parameters”- callback:
() -> Result- A function that returns a newResult
Returns
Section titled “Returns”Result - The current result if Ok, or the result from the callback
unwrap
Section titled “unwrap”Returns the success value if Ok, otherwise panics with the error value.
var result = Ok(42);var value = result.unwrap(); // 42
var error = Err("error");// var value = error.unwrap(); // Panics with "error"!Parameters
Section titled “Parameters”None
Returns
Section titled “Returns”dyn! - The success value
Throws
Section titled “Throws”Throws if the result is Err, displaying the error value
unwrap_or
Section titled “unwrap_or”Returns the success value if Ok, otherwise returns the provided default value.
var result = Ok(42);var value = result.unwrap_or(0); // 42
var error = Err("error");var value = error.unwrap_or(0); // 0Parameters
Section titled “Parameters”- default_value:
dyn!- The value to return if the result isErr
Returns
Section titled “Returns”dyn! - The success value or the default value
unwrap_or_else
Section titled “unwrap_or_else”Returns the success value if Ok, otherwise calls the provided function and returns its result.
var result = Ok(42);var value = result.unwrap_or_else(() -> 0); // 42
var error = Err("error");var value = error.unwrap_or_else(() -> 0); // 0Parameters
Section titled “Parameters”- callback:
() -> dyn!- A function that returns a default value
Returns
Section titled “Returns”dyn! - The success value or the result of calling the callback