Skip to content

Releases: draconware-dev/SpanExtensions.Net

v1.5.1

14 Dec 15:16
99d8486
Compare
Choose a tag to compare

Version 1.5.1 is out to fix incorrect ranges being returned by some custom MemoryExtensions.Split methods.
The custom MemoryExtensions has also been moved from System to SpanExtensions.

Issues fixed:

Full Changelog: https://github.com/draconware-dev/SpanExtensions.Net/blob/main/Changelog.md

v1.5

12 Nov 20:17
344044b
Compare
Choose a tag to compare

Version 1.5 is out with many adjustments made to integrate as flawlessly as possible with .Net 9.

Due to the introduction of variable-length Split methods in .Net 9, our custom Split methods have been replaced as the default by the new versions.
This applies to all .Net versions as for versions prior to .Net 9 a custom implementation approximating the behaviour of the new methods has been provided by this package to ensure a smooth transition.
This decision helps maintain compatibility across .Net versions.
The old Split implementations are however still available as static methods on the ReadOnlySpanExtensions and SpanExtensions classes for ReadOnlySpan<T> and Span<T> respectively.
They provide a richer set of features with overloads for taking a number of splits and specifiyng a behaviour for when that count is reached.

Uprading Guide:

If you're upgrading from a version earlier than 1.5, beware that in order to access the old implementations you've been using an explicit reference to the class is needed.
So

    span.Split('.');

becomes

    ReadOnlySpanExtensions.Split(span, '.');

Span.Split() refers to the new built-in implementations for which a compatibility layer will be provided for versions before .Net 9 so that their use in your codebase can be facilitated across versions.

The ReadOnlyspanExtensions methods are supported in this version, but will be deprecated as soon as the .Net 9 versions catch up in features.

Full Changelog: https://github.com/draconware-dev/SpanExtensions.Net/blob/main/Changelog.md

v1.4.2

29 Oct 11:22
551c19d
Compare
Choose a tag to compare

Many (Readonly-)Span.Count(...) overloads matching these introduced in .Net 8 have been added to all versions before .Net 8.
Additionally, compilation on .Net 9 has been blocked temporarily due to known incompatibilities.

Full Changelog: https://github.com/draconware-dev/SpanExtensions.Net/blob/main/Changelog.md

v1.4.1

09 Sep 14:23
abc1fc9
Compare
Choose a tag to compare

Due to an issue in Version 1.4 there exists a collision between the Span<T>.Replace method provided by SpanExtensions and the one newly provided by .Net 8.
To circumvent an error, we have decided to exclude Span<T>.Replace from any .Net Version beyond .Net 7 moving forward to allow the built-in method to take precedence.
It is still included for any target below version .Net 8 though to ensure backwards-compatibility.

Full Changelog: https://github.com/draconware-dev/SpanExtensions.Net/blob/main/Changelog.md

v1.4.0

03 Sep 12:29
3637bd4
Compare
Choose a tag to compare

Version 1.4 is out with a strong focus on stability.
There are only minimal new additions like finstance the Linq Count method for Span.
The update contais a whole lot of bugfixes and minor performance improvements.
Therefore an extensive test-suite and reference benchmarks have been added and a lot of other maintenance related work went into this update to guarantee a high level of stability, performance and security as well as to facilitate and speed up the developement of future updates.

Thanks to everyone who made this possible.

Contributions

Full Changelog: https://github.com/draconware-dev/SpanExtensions.Net/blob/main/Changelog.md

v1.3.0

20 Mar 16:58
d9bd5c5
Compare
Choose a tag to compare

Version 1.3 is out with as many new features as never before.
Thanks to everyone who made this possible.

Contributions

Full Changelog: https://github.com/draconware-dev/SpanExtensions.Net/blob/main/Changelog.md