Status

A dart package for pattern matching. Inspired by match in Rust and when in Kotlin

Usage

var x = 11;
var result = match(
  x,
  {
    eq(1): () => "Its a one",
    eq(2): () => "Its a $x",
    gt(2) & lt(10): () => "Greater than 2",
    (digit) => digit == 11: () => "Its an eleven",
  },
  other: val("Error!!"),
);

expect(result, "Its an eleven");

match Definition

U match<T, U>(
  T value, // Value that needs to be matched
  Map<bool Function(T), U Function()> fns, {
  required U Function() other,  // a method to return the default value
})

List of helper matcher function

1. eq(T value)
2. neq(T value)
3. gt(num number)
4. lt(num number)
5. gte(num number)
6. lte(num number)
7. range(num from, num to)

List of helper function for other param

1. val(T value) // Function that returns the passed value
2. nil<T>() // Function that returns null

List of operators

1. &
2. |

Libraries

match_case