Files
go-winrt/internal/codegen/methodfilter.go
2025-08-22 17:42:23 -04:00

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
}