(haystack, needle []byte)
| 171 | } |
| 172 | |
| 173 | func longestContiguousMatch(haystack, needle []byte) int { |
| 174 | if len(needle) == 0 || len(haystack) == 0 { |
| 175 | return 0 |
| 176 | } |
| 177 | best := 0 |
| 178 | ni := 0 |
| 179 | run := 0 |
| 180 | for _, hb := range haystack { |
| 181 | if ni < len(needle) && toLowerASCII(hb) == toLowerASCII(needle[ni]) { |
| 182 | run++ |
| 183 | ni++ |
| 184 | if run > best { |
| 185 | best = run |
| 186 | } |
| 187 | } else { |
| 188 | run = 0 |
| 189 | ni = 0 |
| 190 | if ni < len(needle) && toLowerASCII(hb) == toLowerASCII(needle[ni]) { |
| 191 | run = 1 |
| 192 | ni = 1 |
| 193 | if run > best { |
| 194 | best = run |
| 195 | } |
| 196 | } |
| 197 | } |
| 198 | } |
| 199 | return best |
| 200 | } |
| 201 | |
| 202 | func isBoundary(b byte) bool { |
| 203 | return b == '/' || b == '.' || b == '_' || b == '-' |
no test coverage detected