Funcky 3.4.0 | Funcky.Async 1.3.0 | Funcky.XUnit 2.0.2
This update is mainly to update to .NET 8 but also has several smaller improvements.
Native AOT
Both Funcky and Funcky.Async have been annotated to be compatible with Native AOT.
The only exception is OptionJsonSerializer which is not compatible with Native AOT.
.NET 8
We use the new C#12 and .NET features in the code, and expose new features through our API.
- .NET 8 added new overloads to their
TryParseAPIs. These changes are reflected in Funcky'sParseOrNoneAPIs.ParseByteOrNoneoverloads withReadOnlySpan<byte>andstring?ParseSByteOrNoneoverloads withReadOnlySpan<byte>ParseSingleOrNoneoverloads withReadOnlySpan<byte>ParseDoubleOrNoneoverloads withReadOnlySpan<byte>ParseDecimalOrNoneoverloads withReadOnlySpan<byte>ParseInt16OrNoneoverloads withReadOnlySpan<byte>ParseInt32OrNoneoverloads withReadOnlySpan<byte>ParseInt64OrNoneoverloads withReadOnlySpan<byte>ParseUInt16OrNoneoverloads withReadOnlySpan<byte>ParseUInt32OrNoneoverloads withReadOnlySpan<byte>ParseUInt64OrNoneoverloads withReadOnlySpan<byte>ParseNumberOrNone<TNumber>overloadsParseOrNone<TParsable>overloads
String Extensions
We implemented a few of the IEnumerable extensions which are very useful on strings.
Chunkonstring.SlidingWindowonstring.
Monads
- Implemented
UpCastfor the mondsOption,Either,ResultandSystem.Lazy. - Implemented
InspectEmptyonIEnumerableandIAsyncEnumerable - Implemented
ToAsyncEnumerableextension onOption
IEnumerator
MoveNextOrNoneextension onIEnumerator<T>
Consistency
FindIndexOrNoneandFindLastIndexOrNoneextensions onList
What's Changed
- Add
MoveNextOrNoneextension forIEnumeratorby @bash in #739 - Add
ToAsyncEnumerableextension forOptionby @bash in #741 - Implemented Chunk and SlidingWindow on string by @FreeApophis in #744
- Update Out-of-date Cartesian Product Docs by @bash in #747
- Implement Generic ParseOrNone extensions. by @FreeApophis in #745
- Disable UseWithArgumentNamesAnalyzer in Expression Trees by @bash in #751
- Implement
UpCast<T>.From(...)by @bash in #756 - Update SDK to .NET 8 by @bash in #764
- Use
IsTargetFrameworkCompatibleInstead of Listing Frameworks Manually by @bash in #767 - Rename Parseable → Parsable by @bash in #769
- Use Primary Constructors by @bash in #768
- Forgotten to set TargetFramework to .net 8 by @FreeApophis in #770
- Use collection property count access by @FreeApophis in #771
- Avoid ToAsyncEnumerable when not really necessary by @FreeApophis in #772
- Use PolySharp by @FreeApophis in #774
- Use collection expressions by @FreeApophis in #775
- Declare Funcky.XUnit incompatibility with xunit 2.5 and 2.6 releases by @FreeApophis in #778
- Implement InspectEmpty on IEnumerable. by @FreeApophis in #776
- Add missing ParseExtensions.ParseCharOrNone by @FreeApophis in #780
- Implements FindIndexOrNone and FindLastIndexOrNone on List by @FreeApophis in #781
- Add .mailmap by @bash in #786
- Mention dual licensing in readme by @bash in #787
- Mark Funcky and Funcky.Async as AOT compatible by @bash in #784
Full Changelog: 3.3.0...3.4.0