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. |