Blame vendor/github.com/gobwas/glob/match/suffix_any.go

Packit 63bb0d
package match
Packit 63bb0d
Packit 63bb0d
import (
Packit 63bb0d
	"fmt"
Packit 63bb0d
	"strings"
Packit 63bb0d
Packit 63bb0d
	sutil "github.com/gobwas/glob/util/strings"
Packit 63bb0d
)
Packit 63bb0d
Packit 63bb0d
type SuffixAny struct {
Packit 63bb0d
	Suffix     string
Packit 63bb0d
	Separators []rune
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
func NewSuffixAny(s string, sep []rune) SuffixAny {
Packit 63bb0d
	return SuffixAny{s, sep}
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
func (self SuffixAny) Index(s string) (int, []int) {
Packit 63bb0d
	idx := strings.Index(s, self.Suffix)
Packit 63bb0d
	if idx == -1 {
Packit 63bb0d
		return -1, nil
Packit 63bb0d
	}
Packit 63bb0d
Packit 63bb0d
	i := sutil.LastIndexAnyRunes(s[:idx], self.Separators) + 1
Packit 63bb0d
Packit 63bb0d
	return i, []int{idx + len(self.Suffix) - i}
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
func (self SuffixAny) Len() int {
Packit 63bb0d
	return lenNo
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
func (self SuffixAny) Match(s string) bool {
Packit 63bb0d
	if !strings.HasSuffix(s, self.Suffix) {
Packit 63bb0d
		return false
Packit 63bb0d
	}
Packit 63bb0d
	return sutil.IndexAnyRunes(s[:len(s)-len(self.Suffix)], self.Separators) == -1
Packit 63bb0d
}
Packit 63bb0d
Packit 63bb0d
func (self SuffixAny) String() string {
Packit 63bb0d
	return fmt.Sprintf("<suffix_any:![%s]%s>", string(self.Separators), self.Suffix)
Packit 63bb0d
}