1 // Copyright 2015 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
5 // -build !amd64,!s390x
9 // TODO: implements short string optimization on non amd64 platforms
10 // and get rid of strings_amd64.go
12 // Index returns the index of the first instance of substr in s, or -1 if substr is not present in s.
13 func Index(s
, substr
string) int {
19 return IndexByte(s
, substr
[0])
34 o
:= IndexByte(t
[i
:], c
)
40 if s
[i
:i
+n
] == substr
{
45 if fails
>= 4+i
>>4 && i
< len(t
) {
46 // See comment in ../bytes/bytes_generic.go.
47 j
:= indexRabinKarp(s
[i
:], substr
)
57 // Count counts the number of non-overlapping instances of substr in s.
58 // If substr is an empty string, Count returns 1 + the number of Unicode code points in s.
59 func Count(s
, substr
string) int {
60 return countGeneric(s
, substr
)