29 lines
677 B
Go
29 lines
677 B
Go
package codegen
|
|
|
|
// MethodFilter is a filter for methods to be generated.
|
|
type MethodFilter struct {
|
|
filters []string
|
|
}
|
|
|
|
// NewMethodFilter creates a new MethodFilter.
|
|
func NewMethodFilter(filters []string) *MethodFilter {
|
|
return &MethodFilter{filters}
|
|
}
|
|
|
|
// Filter returns true if the method matches one of the filters.
|
|
// In case no filter matches the method, the method is allowed.
|
|
func (md *MethodFilter) Filter(method string) bool {
|
|
for _, filter := range md.filters {
|
|
result := true
|
|
if filter[0] == '!' {
|
|
filter = filter[1:]
|
|
result = false
|
|
}
|
|
|
|
if filter == "*" || filter == method {
|
|
return result
|
|
}
|
|
}
|
|
return true // everything matches by default
|
|
}
|