when<T> static method

void when<T>(
  1. Maybe<T> maybe, {
  2. MaybeNothing? nothing,
  3. MaybeSome<T?>? some,
  4. MaybeDefault<T>? defaultValue,
})

Implementation

static void when<T>(
  Maybe<T> maybe, {
  MaybeNothing? nothing,
  MaybeSome<T?>? some,
  MaybeDefault<T>? defaultValue,
}) {
  if (isNothing(maybe)) {
    if (defaultValue != null) {
      if (some != null) {
        some(defaultValue());
      }
    } else if (nothing != null) {
      nothing();
    }
  } else if (some != null) {
    some(maybe._value);
  }
}