From 4054a50ce4232ebfc4dae043863ad96d46b25b43 Mon Sep 17 00:00:00 2001 From: NeonXP Date: Mon, 21 Nov 2022 04:31:56 +0300 Subject: Better interface --- model/condition.go | 55 ------------------------------------------------------ 1 file changed, 55 deletions(-) delete mode 100644 model/condition.go (limited to 'model/condition.go') diff --git a/model/condition.go b/model/condition.go deleted file mode 100644 index 82c964a..0000000 --- a/model/condition.go +++ /dev/null @@ -1,55 +0,0 @@ -package model - -// Compare current node with another node -func (n *Node) Compare(op Operand, node *Node) bool { - switch op { - case OpEq: - return n.Value() == node.Value() - case OpNeq: - return n.Value() != node.Value() - case OpLess: - return less(n, node) - case OpGt: - return less(node, n) - case OpLessEq: - return less(n, node) || n.Value() == node.Value() - case OpGtEq: - return less(node, n) || n.Value() == node.Value() - case OpIn: - if n.Type != ArrayNode { - return false - } - for _, v := range n.ArrayValue { - if v.Value() == node.Value() { - return true - } - } - } - return false -} - -func less(n1 *Node, n2 *Node) bool { - if n1.Type != n2.Type { - return false - } - switch n1.Type { - case NumberNode: - return n1.NumberValue < n2.NumberValue - case StringNode: - return n1.StringValue < n2.StringValue - default: - return false - } -} - -type Operand int - -const ( - OpEq Operand = iota - OpNeq - OpLess - OpLessEq - OpGt - OpGtEq - OpIn -) -- cgit v1.2.3