You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
22 lines
422 B
22 lines
422 B
3 years ago
|
package selector
|
||
|
|
||
|
import "context"
|
||
|
|
||
|
// SelectOptions is Select Options.
|
||
|
type SelectOptions struct {
|
||
|
Filters []Filter
|
||
|
}
|
||
|
|
||
|
// SelectOption is Selector option.
|
||
|
type SelectOption func(*SelectOptions)
|
||
|
|
||
|
// Filter is node filter function.
|
||
|
type Filter func(context.Context, []Node) []Node
|
||
|
|
||
|
// WithFilter with filter options
|
||
|
func WithFilter(fn ...Filter) SelectOption {
|
||
|
return func(opts *SelectOptions) {
|
||
|
opts.Filters = fn
|
||
|
}
|
||
|
}
|