Whats's new in version 3.0.1:
- No changes to the library's code or API
- Matchmaker is now built with .NET 6 and uses C# 10 (but still targets .NET Standard 2.1)
- Improved the NuGet package (added a symbol package, a readme, and Source Link)
- The library is now trimmable
- GitHub Actions are now used for CI instead of AppVeyor
Whats's new in version 3.0:
- Changed the .NET Standard version to 2.1
- Added support for nullable reference types
- Added asynchronous pattern matcing
What's new in version 2.1:
- The less generic
IPattern<TInput>
interface was removed (breaking change) - The
Type
pattern and theCast
extension methods now work correctly withnull
values
Even though this release contains a potentially breaking change, it is very unlikely that the removal of an interface which was designed to be internal will actually break anything.
What's new in version 2.0 (almost all changes are breaking):
- Library renamed to Matchmaker
- Stopped using the DLR for ignoring the intermediate types
- Dropped the dependency on language-ext
- Completely updated the pattern hierarchy and built-in patterns
- The deprecated
StructNull
pattern is removed - Matching with fall-through became lazy
- Strict matching with fall-through was removed
- Descriptions were added to patterns
- Creating custom patterns became possible through factory methods and extension methods
- The default mode of match statements changed from non-strict to strict
Read the migration guide for more info.
What's new in version 1.2:
- Added tests
- Deprecated the
StructNull
pattern in favour ofValueNull
- Fixed a bug which made strict matching with fall-through unusable
- Fixed null handling in some predefined patterns
- Minor code refactoring
What's new in version 1.1:
Matcher
classes renamed toMatch
(breaking change).OptionUnsafe
is now used instead ofOption
in patterns to fully supportnull
values (breaking change).ExecuteOnStrict
inMatch<TInput>
renamed toExecuteStrict
(breaking change).- Implemented matching with fall-through
- Added two new patterns -
Null
for classes andStructNull
for nullable structs.
Although there are several breaking changes, the major version is not incremented, as these changes will probably not actually break anything, because not many people have used version 1.0 so far.
The initial version of the PatternMatching library.