mirror of
https://github.com/golang/go
synced 2024-11-19 01:44:40 -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
|
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.
|
// 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 {
|
func Index(s, sep []byte) int {
|
||||||
n := len(sep)
|
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 {
|
var makeFieldsInput = func() []byte {
|
||||||
x := make([]byte, 1<<20)
|
x := make([]byte, 1<<20)
|
||||||
// Input is ~10% space, ~10% 2-byte UTF-8, rest ASCII non-space.
|
// Input is ~10% space, ~10% 2-byte UTF-8, rest ASCII non-space.
|
||||||
|
Loading…
Reference in New Issue
Block a user