1package match 2 3import ( 4 "fmt" 5 "github.com/gobwas/glob/util/strings" 6) 7 8type Any struct { 9 Separators []rune 10} 11 12func NewAny(s []rune) Any { 13 return Any{s} 14} 15 16func (self Any) Match(s string) bool { 17 return strings.IndexAnyRunes(s, self.Separators) == -1 18} 19 20func (self Any) Index(s string) (int, []int) { 21 found := strings.IndexAnyRunes(s, self.Separators) 22 switch found { 23 case -1: 24 case 0: 25 return 0, segments0 26 default: 27 s = s[:found] 28 } 29 30 segments := acquireSegments(len(s)) 31 for i := range s { 32 segments = append(segments, i) 33 } 34 segments = append(segments, len(s)) 35 36 return 0, segments 37} 38 39func (self Any) Len() int { 40 return lenNo 41} 42 43func (self Any) String() string { 44 return fmt.Sprintf("<any:![%s]>", string(self.Separators)) 45} 46