chore: cleanup patch code

This commit is contained in:
wwqgtxx
2024-08-27 11:04:42 +08:00
parent 6e04e1e9dc
commit 3e2c9ce821
9 changed files with 83 additions and 74 deletions

View File

@@ -12,16 +12,6 @@ type UpdatableProvider interface {
UpdatedAt() time.Time
}
func (rp *ruleSetProvider) UpdatedAt() time.Time {
return rp.Fetcher.UpdatedAt
}
func (rp *ruleSetProvider) Close() error {
rp.Fetcher.Destroy()
return nil
}
func Suspend(s bool) {
suspended = s
}

View File

@@ -89,6 +89,10 @@ func (rp *ruleSetProvider) Behavior() P.RuleBehavior {
return rp.behavior
}
func (rp *ruleSetProvider) Count() int {
return rp.strategy.Count()
}
func (rp *ruleSetProvider) Match(metadata *C.Metadata) bool {
return rp.strategy != nil && rp.strategy.Match(metadata)
}
@@ -113,11 +117,16 @@ func (rp *ruleSetProvider) MarshalJSON() ([]byte, error) {
"name": rp.Name(),
"ruleCount": rp.strategy.Count(),
"type": rp.Type().String(),
"updatedAt": rp.UpdatedAt,
"updatedAt": rp.UpdatedAt(),
"vehicleType": rp.VehicleType().String(),
})
}
func (rp *RuleSetProvider) Close() error {
runtime.SetFinalizer(rp, nil)
return rp.ruleSetProvider.Close()
}
func NewRuleSetProvider(name string, behavior P.RuleBehavior, format P.RuleFormat, interval time.Duration, vehicle P.Vehicle,
parse func(tp, payload, target string, params []string, subRules map[string][]C.Rule) (parsed C.Rule, parseErr error)) P.RuleProvider {
rp := &ruleSetProvider{
@@ -139,8 +148,7 @@ func NewRuleSetProvider(name string, behavior P.RuleBehavior, format P.RuleForma
rp,
}
final := func(provider *RuleSetProvider) { _ = rp.Fetcher.Destroy() }
runtime.SetFinalizer(wrapper, final)
runtime.SetFinalizer(wrapper, (*RuleSetProvider).Close)
return wrapper
}