zxcvbn-go/match/match.go

45 lines
889 B
Go

package match
//Matches is an alies for []Match used for sorting
type Matches []Match
func (s Matches) Len() int {
return len(s)
}
func (s Matches) Swap(i, j int) {
s[i], s[j] = s[j], s[i]
}
func (s Matches) Less(i, j int) bool {
if s[i].I < s[j].I {
return true
} else if s[i].I == s[j].I {
return s[i].J < s[j].J
} else {
return false
}
}
// Match represents different matches
type Match struct {
Pattern string
I, J int
Token string
DictionaryName string
Entropy float64
}
//DateMatch is specifilly a match for type date
type DateMatch struct {
Pattern string
I, J int
Token string
Separator string
Day, Month, Year int64
}
//Matcher are a func and ID that can be used to match different passwords
type Matcher struct {
MatchingFunc func(password string) []Match
ID string
}