Change insert(:within:)
to return whether the range set was modified
#4
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.
The insert method
now returns a
Bool
indicating whether the range set was modified.The other insert method,
insert(contentsOf:)
, and the modified one now call into aninternal
version:The
public
version ofinsert(contentsOf:)
ignores the return value, andinsert(:within:)
returns the result.Motivation
Some use cases need to know if the range set was modified, and would previously have to call
contains()
and theninsert()
basically doubling the work to be done — since both have to do a search in the range set.One example is building a type that conforms to
SetAlgebra
and basing it onRangeSet
. Theinsert()
method needed forSetAlgebra
needs to know if its value has been mutated.