Blame vendor/github.com/gobwas/glob/util/strings/strings.go

Packit 63bb0d
package strings
Packit 63bb0d
Packit 63bb0d
import (
Packit 63bb0d
	"strings"
Packit 63bb0d
	"unicode/utf8"
Packit 63bb0d
)
Packit 63bb0d
Packit 63bb0d
func IndexAnyRunes(s string, rs []rune) int {
Packit 63bb0d
	for _, r := range rs {
Packit 63bb0d
		if i := strings.IndexRune(s, r); i != -1 {
Packit 63bb0d
			return i
Packit 63bb0d
		}
Packit 63bb0d
	}
Packit 63bb0d
Packit 63bb0d
	return -1
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
func LastIndexAnyRunes(s string, rs []rune) int {
Packit 63bb0d
	for _, r := range rs {
Packit 63bb0d
		i := -1
Packit 63bb0d
		if 0 <= r && r < utf8.RuneSelf {
Packit 63bb0d
			i = strings.LastIndexByte(s, byte(r))
Packit 63bb0d
		} else {
Packit 63bb0d
			sub := s
Packit 63bb0d
			for len(sub) > 0 {
Packit 63bb0d
				j := strings.IndexRune(s, r)
Packit 63bb0d
				if j == -1 {
Packit 63bb0d
					break
Packit 63bb0d
				}
Packit 63bb0d
				i = j
Packit 63bb0d
				sub = sub[i+1:]
Packit 63bb0d
			}
Packit 63bb0d
		}
Packit 63bb0d
		if i != -1 {
Packit 63bb0d
			return i
Packit 63bb0d
		}
Packit 63bb0d
	}
Packit 63bb0d
	return -1
Packit 63bb0d
}