begin work on refactor of ruleset and functional options serializer for proxychain response/request modifiers

This commit is contained in:
Kevin Pham
2023-12-03 21:32:03 -06:00
parent 1fc47c76b6
commit 547cf61a7d
7 changed files with 348 additions and 0 deletions

32
pkg/ruleset_v2/ruleset.go Normal file
View File

@@ -0,0 +1,32 @@
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
}