mirror of
https://github.com/golang/go
synced 2024-11-18 23:54:41 -07:00
bytes: add ContainsRune
Make package bytes consistent with strings by adding missing function ContainsRune. Fixes #15189 Change-Id: Ie09080b389e55bbe070c57aa3bd134053a805423 Reviewed-on: https://go-review.googlesource.com/21710 Run-TryBot: Rob Pike <r@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Rob Pike <r@golang.org>
This commit is contained in:
parent
6c5352f181
commit
59af53d681
@ -88,6 +88,11 @@ func ContainsAny(b []byte, chars string) bool {
|
||||
return IndexAny(b, chars) >= 0
|
||||
}
|
||||
|
||||
// ContainsRune reports whether the Unicode code point r is within b.
|
||||
func ContainsRune(b []byte, r rune) bool {
|
||||
return IndexRune(b, r) >= 0
|
||||
}
|
||||
|
||||
// Index returns the index of the first instance of sep in s, or -1 if sep is not present in s.
|
||||
func Index(s, sep []byte) int {
|
||||
n := len(sep)
|
||||
|
@ -1245,6 +1245,30 @@ func TestContainsAny(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
var ContainsRuneTests = []struct {
|
||||
b []byte
|
||||
r rune
|
||||
expected bool
|
||||
}{
|
||||
{[]byte(""), 'a', false},
|
||||
{[]byte("a"), 'a', true},
|
||||
{[]byte("aaa"), 'a', true},
|
||||
{[]byte("abc"), 'y', false},
|
||||
{[]byte("abc"), 'c', true},
|
||||
{[]byte("a☺b☻c☹d"), 'x', false},
|
||||
{[]byte("a☺b☻c☹d"), '☻', true},
|
||||
{[]byte("aRegExp*"), '*', true},
|
||||
}
|
||||
|
||||
func TestContainsRune(t *testing.T) {
|
||||
for _, ct := range ContainsRuneTests {
|
||||
if ContainsRune(ct.b, ct.r) != ct.expected {
|
||||
t.Errorf("ContainsRune(%q, %q) = %v, want %v",
|
||||
ct.b, ct.r, !ct.expected, ct.expected)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var makeFieldsInput = func() []byte {
|
||||
x := make([]byte, 1<<20)
|
||||
// Input is ~10% space, ~10% 2-byte UTF-8, rest ASCII non-space.
|
||||
|
Loading…
Reference in New Issue
Block a user