slices: make slice equality comparator flexible on target type #100
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.
This PR enables
SliceContainsFunc
to accept a different type as thetarget from the slice elements type. For example if we have a slice
of Person objects but want to detect if the slice contains a person
with a particular name (string), we can now use a comparator of
signature
func(Person, string) bool
- rather than needing a wholePerson struct for the target.
Closes #88
Worth noting that technically just the predicate function is sufficient, as is done in the
slices
package https://pkg.go.dev/golang.org/x/exp/slices#ContainsFunc - however in the context of test case assertions I think it's more valuable to have the target value explicitly part of the assertion signature.