operator ~ method

Option<T> operator ~()

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);