ruqe 1.3.0 ruqe: ^1.3.0 copied to clipboard
Ruqe brings the convenient types and methods found in Rust into Dart, such as the Result, Option, pattern-matching, etc.
import 'package:ruqe/ruqe.dart';
void main() {
/// Calling [stringToNum] with an alphanumeric
/// data will trigger an exception.
var trigger = stringToNum("%65");
/// With pattern matching, we were able to recover from the
/// exception thrown from calling [int.parse()] and return
/// 0 instead.
var result = trigger.match<int?>(
ok: (value) => value,
err: (_) => 0,
);
print("Result: $result"); // Result: 0
/// Optional pattern matching
final Option<String> asData = None();
final data = asData.match(
ok: (value) => value,
err: () => null
);
print("Match Result: $data");
}
Result<int, String> stringToNum(String str) {
try {
var value = int.parse(str);
return Ok(value);
} catch (err) {
return Err("Value is none");
}
}