Conversation
Welcome to Codecov 🎉Once you merge this PR into your default branch, you're all set! Codecov will compare coverage reports and display results in all future pull requests. ℹ️ You can also turn on project coverage checks and project coverage reporting on Pull Request comment Thanks for integrating Codecov - We've got you covered ☂️ |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Overview
This release finalizes the v2 API direction with a focus on explicit behavior, predictable performance, and reduced surface area.
The primary change is a move to borrow-by-default semantics, along with API cleanup, clarified mutability rules, and transparent benchmarking. Several legacy helpers and ambiguous behaviors were deprecated or removed to simplify usage and eliminate hidden costs.
Breaking & Behavioral Changes
Borrow-by-default construction
NewandNewNumericno longer perform defensive copies.Explicit copying
Clone()orItemsCopy()to explicitly take ownership.API Simplifications & Deprecations
The following APIs were removed or deprecated to reduce redundancy, ambiguity, and overlapping semantics.
Construction & ownership
AttachRemoved. Redundant after borrow-by-defaultNew.Querying & filtering aliases
FindWhereRemoved. UseFirstWhere.WhereRemoved. Alias ofFilter.ContainsRemoved. Replaced with value-basedContains(collection, value).Transformation aliases
PluckRemoved. UseMapTo.Mutation helpers (important)
PushRemoved. UseAppend.PushFrontRemoved. UsePrepend.These methods duplicated slice semantics and obscured whether an operation was mutating or allocating. Their removal makes mutation explicit and consistent across the API.
Mutability & Method Classification
Methods are now consistently documented and classified as:
Notable clarifications:
Mapis explicitly mutableEachis readonly and chainableThis makes side effects explicit and easier to reason about.
Benchmarks & Performance
Dedicated benchmark documentation
BENCHMARKS.mdcontaining full raw benchmark data.collection.New(borrowed) vslocollection.New().Clone()(explicit copy) vsloCondensed README benchmarks
Key observations
loDocumentation Improvements
Clone()andItemsCopy()Miscellaneous
Summary
This release establishes a stable, predictable foundation going forward:
It is intended as a long-term, coherent baseline for future evolution of the library.