Dart Result Option
Dart Result and Option are example implementations from Rust Option and Result:
Result<int, String> sumPositive(int n1, int n2) {
if (n1 + n2 < 0) {
// If the sum is not positive, we return a String wrapped on an Err
// that will be treated as an error.
return Err("The sum between $n1 + $n2 is not bigger than 0");
}
// If everything goes well we wrap the sum with an Ok.
return Ok(n1 + n2);
}
sumPositive(5, 5).match(
(ok) => print("Successfully returned, the sum is $ok"),
(err) => print(err));
Option<int> testOption(int value) {
if (value <= 2) {
return None();
} else {
return Some(value * value);
}
}
testOption(5).match((some) {
print("value is $some");
}, () {
print("Value is less than 2");
});
These constructs can be used to handle errors and possible null values, you can look inside example
and tests
folders for a better idea on how to use them.
For more in-depth explanations go to:
Libraries
- dart_result_option
- A simple error handling library to help you always treat successes and failures.