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  }