feat: rule set loader
Add rule set loader, move original config loader routine into ruslet/loader.go
Sorry but I don't see the point of this change. You are merely moving this function into a new struct with only one method. This is not abstraction - in fact it ends up with more lines and more fragmented code
The basic idea here is to create a new component named RuleSetLoader which managed all ruleset update and can be selected by config file. Based on this component, we can add remote config to not only load config from local file. Besides, viper offers onConfigChange and customized reader, maybe it's better to use them to implement new RuleSetLoader?