# Functions
ExpressionCopyWithLookupFunc creates a copy of this expression (not a deep copy of the actual expression), using the given lookup function.
NewArrayComparable returns a Comparable for a array of value.
NewArrayComparableFromComparables creates a new ArrayComparable from an existing array of Comparables.
NewDayOfWeekFromString returns a new DayOfWeekComparable for the string, which should be a weekday (caps insensitive).
NewExpressionWithLookupFunc creates a new expression with the given connective, list of expressions, and lookup function.
NewIntegerComparableFromAny returns an IntegerComparable for
a.) any int type or b.) it will parse a string if given one, and try to make that an int.
NewIntegerComparableFromIntType returns an IntegerComparable for any integer type.
NewIPComparable returns a new IPComparable, given the string.
NewIPOrIPNetComparable is a generic constructor for either an IPComparable or an IPNetComparable, given the format of the string.
Create a new regex pattern match comparable.
NewSimpleExpression returns an expression that uses the identity function for lookups.
NewStringArrayComparable returns a Comparable for an array of strings.
NewStringComparable returns a Comparable for a string value.
NewTimeOfDayFromTimeString tries to parse str as some kind of timestamp.
# Constants
AndOfOrsMode is an evaluator mode -- and we AND each condition, and the possible values are ORed.
OrOfAndsMode is an evaluator mode -- we OR each condition and the possible values are ANDed.
# Structs
ArrayComparable is a Comparable for arrays of Comparables.
AtomicExpression is a single comparsion -- an operator, the value to compare against (the lefthand side), and the actual value.
TimeComparable is a comparable for time objects.
Expression -- this represents a simple boolean expression which is either and and of ors:
(e.g.
GreaterNotApplicable is a struct for embedding in objects where they should not be ordered, like IP addresses.
IntegerComparable is a Comparable for any integer or integer-like object.
IPComparable is a Comparable for net.IPs.
IPNetComparable is a comparable representing an IP network (subnet).
data type to support a regex pattern match.
StringComparable is a Comparable for strings.
TimeComparable is a comparable for time objects.
TimeOfDayComparable is used to compare the current time of day (e.g.
# Interfaces
Comparable -- a Comparable is a simple interface to allow the evaluator to make comparisons between objects.
# Type aliases
EvaluatorMode is either AndOfOrsMode or OrOfAndsMode, and is the logical connectives/format of the expression to be evaluated.