35 lines
704 B
Go
35 lines
704 B
Go
package remap
|
|
|
|
// idx returns []int{s.start, s.end}.
|
|
func (s *stringIndexer) idx() (i []int) {
|
|
return []int{s.start, s.end}
|
|
}
|
|
|
|
// idxStrict returns [2]int{s.start, s.end}.
|
|
func (s *stringIndexer) idxStrict() (i [2]int) {
|
|
return [2]int{s.start, s.end}
|
|
}
|
|
|
|
/*
|
|
idxSlice populates s.grpS using s.start and s.end.
|
|
|
|
If str is nil, it will use s.s.
|
|
If str is nil and s.s is nil, it will panic with [ErrNoStr].
|
|
|
|
If the pattern does not match (s.start < 0 or s.end < 0),
|
|
s.matched will be set to false (otherwise true).
|
|
*/
|
|
func (s *stringIndexer) idxSlice(str *string) {
|
|
|
|
if str == nil {
|
|
if s.s == nil {
|
|
panic(ErrNoStr)
|
|
}
|
|
str = s.s
|
|
}
|
|
|
|
s.grpS, s.matched = strIdxSlicer(*str, s.idxStrict())
|
|
|
|
return
|
|
}
|