github.com/stackb/rules_proto@v0.0.0-20240221195024-5428336c51f1/pkg/protoc/rule_registry.go (about) 1 package protoc 2 3 import "errors" 4 5 // ErrUnknownRule is the error returned when a rule is not known. 6 var ErrUnknownRule = errors.New("unknown rule") 7 8 // RuleRegistry represents a library of rule implementations. 9 type RuleRegistry interface { 10 // RuleNames returns a sorted list of rule names. 11 RuleNames() []string 12 // LookupRule returns the implementation under the given name. If the rule 13 // is not found, ErrUnknownRule is returned. 14 LookupRule(name string) (LanguageRule, error) 15 // MustRegisterRule installs a LanguageRule implementation under the given 16 // name in the global rule registry. Panic will occur if the same rule is 17 // registered multiple times. 18 MustRegisterRule(name string, rule LanguageRule) RuleRegistry 19 }