mirror of
				https://codeberg.org/forgejo/forgejo.git
				synced 2025-11-03 16:01:11 +00:00 
			
		
		
		
	* Fix validate() function to handle errors in embedded anon structs * Implement webhook branch filter See #2025, #3998.
		
			
				
	
	
		
			57 lines
		
	
	
	
		
			733 B
		
	
	
	
		
			Go
		
	
	
	
		
			Vendored
		
	
	
	
			
		
		
	
	
			57 lines
		
	
	
	
		
			733 B
		
	
	
	
		
			Go
		
	
	
	
		
			Vendored
		
	
	
	
package match
 | 
						|
 | 
						|
import (
 | 
						|
	"fmt"
 | 
						|
	"unicode/utf8"
 | 
						|
)
 | 
						|
 | 
						|
type Min struct {
 | 
						|
	Limit int
 | 
						|
}
 | 
						|
 | 
						|
func NewMin(l int) Min {
 | 
						|
	return Min{l}
 | 
						|
}
 | 
						|
 | 
						|
func (self Min) Match(s string) bool {
 | 
						|
	var l int
 | 
						|
	for range s {
 | 
						|
		l += 1
 | 
						|
		if l >= self.Limit {
 | 
						|
			return true
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	return false
 | 
						|
}
 | 
						|
 | 
						|
func (self Min) Index(s string) (int, []int) {
 | 
						|
	var count int
 | 
						|
 | 
						|
	c := len(s) - self.Limit + 1
 | 
						|
	if c <= 0 {
 | 
						|
		return -1, nil
 | 
						|
	}
 | 
						|
 | 
						|
	segments := acquireSegments(c)
 | 
						|
	for i, r := range s {
 | 
						|
		count++
 | 
						|
		if count >= self.Limit {
 | 
						|
			segments = append(segments, i+utf8.RuneLen(r))
 | 
						|
		}
 | 
						|
	}
 | 
						|
 | 
						|
	if len(segments) == 0 {
 | 
						|
		return -1, nil
 | 
						|
	}
 | 
						|
 | 
						|
	return 0, segments
 | 
						|
}
 | 
						|
 | 
						|
func (self Min) Len() int {
 | 
						|
	return lenNo
 | 
						|
}
 | 
						|
 | 
						|
func (self Min) String() string {
 | 
						|
	return fmt.Sprintf("<min:%d>", self.Limit)
 | 
						|
}
 |