33 lines
551 B
Go
33 lines
551 B
Go
package ruleset_v2
|
|
|
|
import (
|
|
"net/url"
|
|
)
|
|
|
|
type IRuleset interface {
|
|
HasRule(url url.URL) bool
|
|
GetRule(url url.URL) (rule Rule, exists bool)
|
|
}
|
|
|
|
type Ruleset struct {
|
|
rulesetPath string
|
|
rules map[string]Rule
|
|
}
|
|
|
|
func (rs Ruleset) GetRule(url url.URL) (rule Rule, exists bool) {
|
|
rule, exists = rs.rules[url.Hostname()]
|
|
return rule, exists
|
|
}
|
|
|
|
func (rs Ruleset) HasRule(url url.URL) bool {
|
|
_, exists := rs.GetRule(url)
|
|
return exists
|
|
}
|
|
|
|
func NewRuleset(path string) (Ruleset, error) {
|
|
rs := Ruleset{
|
|
rulesetPath: path,
|
|
}
|
|
return rs, nil
|
|
}
|