operator ~ method
Executes the prefixed function, propagating any unwrapped None() values to the return value of the function.
Shortcut for propagateOption.
Usage:
// This function will error at runtime if passed a None() value
Option<int> add(Option<int> a, Option<int> b) {
return Some(a.unwrap() + b.unwrap());
}
// For safety, it can be rewritten as:
Option<int> add(Option<int> a, Option<int> b) => ~() {
return Some(a.unwrap() + b.unwrap());
// You can also use the ~ operator as a shortcut for unwrap():
// return Some(~a + ~b);
};
// Runtime safety achieved from a mere 8 total characters of syntactical overhead!
Implementation
Option<T> operator ~() => propagateOption(this);