Releases: onix-labs/onixlabs-dotnet
Version 9.4.0
ONIXLabs .NET Library 9.4.0
We are excited to announce the release of ONIXLabs .NET Library version 9.4.0, now available on NuGet. This version includes new features and associated unit tests.
Core Updates
- Adds a comprehensive suite of overloads for
MatchAsync,SelectAsync, andSelectManyAsynconResultandResult<T>types. - Adds extension methods to bind
MatchAsync,SelectAsyncandSelectManyAsyncmethods into async workflows. - Adds extension methods for
Randomallowing a random element of aReadOnlyList<T>to be obtained.
Version 9.3.0
ONIXLabs .NET Library 9.3.0
We are excited to announce the release of ONIXLabs .NET Library version 9.3.0, now available on NuGet. This version includes new features and associated unit tests.
Core Updates
- Updated
Preconditionsto return values from inclusive or exclusive checks if they are valid.
Version 9.2.0
ONIXLabs .NET Library 9.2.0
We are excited to announce the release of ONIXLabs .NET Library version 9.2.0, now available on NuGet. This version includes new features and associated unit tests.
Core Updates
- Introduced new pre-condition checks and requirements to check
Result,Result<T>andOptional<T>types. - Re-added collection generator functions.
Whilst collection expressions are a much welcomed addition to .NET, they have their limitations; i.e. you cannot chain functions to the end of a collection expression; for example;
List<int> numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].Where(number => number % 2 is 0);In contrast, this can be done with collection generators; for example:
List<int> numbers = ListOf(1, 2, 3, 4, 5, 6, 7, 8, 9, 10).Where(number => number % 2 is 0);Version 9.1.0
ONIXLabs .NET Library 9.1.0
We are excited to announce the release of ONIXLabs .NET Library version 9.1.0, now available on NuGet. This version includes new features and associated unit tests.
Numerics Updates
- Introduced new
GenericMath.Factorialmethod which computes the factorial of a given integer.
Cryptography Updates
- Added new
Hash.Computeoverloads that acceptReadOnlySpan<byte>,IBinaryConvertibleandISpanBinaryConvertible. - Added new
Saltconstructor that accepts aReadOnlySequence<byte>.
Version 9.0.0
ONIXLabs .NET Library 9.0.0
We are excited to announce the release of ONIXLabs .NET Library version 9.0.0, now available on NuGet. This version includes significant new features, enhanced code coverage, and improved performance. The entire codebase has been thoroughly analyzed and refactored to reduce heap allocations, eliminate unnecessary virtual method calls, and optimize computationally intensive algorithms.
Core Updates
-
Introducing the new
ISpanBinaryConvertibleinterface, enabling objects to return their underlying byte array as aReadOnlySpan<T>. This allows consumers to work with the original object's bytes without mutation or additional allocations. -
Adding new LINQ-like extension methods for non-generic
IEnumerable, such asCount,LongCount,ForEach,GetContentHashCode,IsEmpty,IsNotEmpty,IsSingle,IsCountEven,IsCountOdd,JoinToString, andToCollectionString. -
Result<T>now implementsIDisposableandIAsyncDisposable, allowing for use inusingandasync usingstatements. This ensures proper disposal of underlying values that implement these interfaces. -
Adding async method extensions for
Result,Result<T>, andOptional<T>, facilitating seamless integration into async workflows. -
Enhancing pre-condition guard clauses to handle nullable structs and strings that are null, empty, or whitespace.
-
Updating the
GetNameextension to support formatting with full type names and generic type arguments, configurable via the newTypeNameFlagsenumeration. -
Improving the
ToRecordStringextension to support more expressive record-like strings, including formatting for collection types and null values.
Cryptography Updates
-
Introducing new record types:
NamedHash,NamedPrivateKey,NamedPublicKey, andDigitalSignatureAndPublicKey. -
Fixing an issue in the SHA3 implementation where the hash length was incorrectly set.
Version 8.16.0
Merge branch 'refs/heads/main' into release
Version 8.15.0
Merge branch 'refs/heads/main' into release
Version 8.14.0
Merge branch 'refs/heads/main' into release
Version 8.13.0
Merge branch 'refs/heads/main' into release
Version 8.12.0
Merge branch 'refs/heads/main' into release