61 lines
1.2 KiB
Go
61 lines
1.2 KiB
Go
package adapter
|
|
|
|
// ComparisonOperator is the base type for comparison operators.
|
|
type ComparisonOperator uint8
|
|
|
|
// Comparison operators
|
|
const (
|
|
ComparisonOperatorNone ComparisonOperator = iota
|
|
ComparisonOperatorCustom
|
|
|
|
ComparisonOperatorEqual
|
|
ComparisonOperatorNotEqual
|
|
|
|
ComparisonOperatorLessThan
|
|
ComparisonOperatorGreaterThan
|
|
|
|
ComparisonOperatorLessThanOrEqualTo
|
|
ComparisonOperatorGreaterThanOrEqualTo
|
|
|
|
ComparisonOperatorBetween
|
|
ComparisonOperatorNotBetween
|
|
|
|
ComparisonOperatorIn
|
|
ComparisonOperatorNotIn
|
|
|
|
ComparisonOperatorIs
|
|
ComparisonOperatorIsNot
|
|
|
|
ComparisonOperatorLike
|
|
ComparisonOperatorNotLike
|
|
|
|
ComparisonOperatorRegExp
|
|
ComparisonOperatorNotRegExp
|
|
)
|
|
|
|
type Comparison struct {
|
|
t ComparisonOperator
|
|
op string
|
|
v interface{}
|
|
}
|
|
|
|
func (c *Comparison) CustomOperator() string {
|
|
return c.op
|
|
}
|
|
|
|
func (c *Comparison) Operator() ComparisonOperator {
|
|
return c.t
|
|
}
|
|
|
|
func (c *Comparison) Value() interface{} {
|
|
return c.v
|
|
}
|
|
|
|
func NewComparisonOperator(t ComparisonOperator, v interface{}) *Comparison {
|
|
return &Comparison{t: t, v: v}
|
|
}
|
|
|
|
func NewCustomComparisonOperator(op string, v interface{}) *Comparison {
|
|
return &Comparison{t: ComparisonOperatorCustom, op: op, v: v}
|
|
}
|