edge/pkg/storage/filter/and.go

28 lines
511 B
Go

package filter
type AndOperator struct {
children []Operator
}
func (o *AndOperator) Token() Token {
return TokenAnd
}
func (o *AndOperator) AsMap() map[string]any {
children := make([]map[string]any, 0, len(o.children))
for _, c := range o.children {
children = append(children, c.AsMap())
}
return map[string]any{
string(TokenAnd): children,
}
}
func (o *AndOperator) Children() []Operator {
return o.children
}
func NewAndOperator(ops ...Operator) *AndOperator {
return &AndOperator{ops}
}