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
TryParse
APIs. These changes are reflected in Funcky'sParseOrNone
APIs.ParseByteOrNone
overloads withReadOnlySpan<byte>
andstring?
ParseSByteOrNone
overloads withReadOnlySpan<byte>
ParseSingleOrNone
overloads withReadOnlySpan<byte>
ParseDoubleOrNone
overloads withReadOnlySpan<byte>
ParseDecimalOrNone
overloads withReadOnlySpan<byte>
ParseInt16OrNone
overloads withReadOnlySpan<byte>
ParseInt32OrNone
overloads withReadOnlySpan<byte>
ParseInt64OrNone
overloads withReadOnlySpan<byte>
ParseUInt16OrNone
overloads withReadOnlySpan<byte>
ParseUInt32OrNone
overloads withReadOnlySpan<byte>
ParseUInt64OrNone
overloads withReadOnlySpan<byte>
ParseNumberOrNone<TNumber>
overloadsParseOrNone<TParsable>
overloads
String Extensions
We implemented a few of the IEnumerable extensions which are very useful on strings.
Chunk
onstring
.SlidingWindow
onstring
.
Monads
- Implemented
UpCast
for the mondsOption
,Either
,Result
andSystem.Lazy
. - Implemented
InspectEmpty
onIEnumerable
andIAsyncEnumerable
- Implemented
ToAsyncEnumerable
extension onOption
IEnumerator
MoveNextOrNone
extension onIEnumerator<T>
Consistency
FindIndexOrNone
andFindLastIndexOrNone
extensions onList
What's Changed
- Add
MoveNextOrNone
extension forIEnumerator
by @bash in #739 - Add
ToAsyncEnumerable
extension forOption
by @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
IsTargetFrameworkCompatible
Instead 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