func (f Filter) String() string {
	arg := f.Arg
	if s, ok := f.Arg.(string); ok {
		arg = fmt.Sprintf(`"%s"`, s)
	}
	s := fmt.Sprintf(`["%v", "%s", %v]`, f.Comparator, f.Column, arg)
	if f.Inverse {
		return fmt.Sprintf(`["!", %s]`, s)
	}
	return s
}
String returns a string representation of the filter.
package filter
import "fmt"
const (
	Gt = ">"
	Gte = ">="
	Eq = "="
	Neq = "!="
	Lt = "<"
	Lte = "<="
	In = "in"
	Nin = "not in"
	IsNull = "isnull"
	IsNotNull = "isnotnull"
)
var Inverse = map[string]string{
	Gt:        Lte,
	Gte:       Lt,
	Eq:        Neq,
	Lt:        Gte,
	Lte:       Gt,
	In:        Nin,
	Nin:       In,
	IsNotNull: IsNull,
	IsNull:    IsNotNull,
}
type Filter struct {
	Comparator interface{}
	Column string
	Arg interface{}
	Inverse bool
}