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}
|
||
|
}
|