Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( // ErrEvaluationTimeout signals that evaluating a query exceeded the // evaluation timeout. ErrEvaluationTimeout = errors.New("query evaluation timed out") )
Evaluation errors.
Functions ¶
Types ¶
type CachedCompiler ¶
type CachedCompiler struct {
// contains filtered or unexported fields
}
CachedCompiler wraps a compiler with an LRU cache.
func NewCachedCompiler ¶
func NewCachedCompiler(compiler Compiler, size int) (*CachedCompiler, error)
NewCachedCompiler returns a new LRU-caching compiler of given cache size.
type QueryEvaluationError ¶
type QueryEvaluationError struct {
Err error
}
QueryEvaluationError signals that a query was malformed.
func (*QueryEvaluationError) Error ¶
func (e *QueryEvaluationError) Error() string
Error returns the wrapped error message.
type QueryEvaluator ¶
type QueryEvaluator struct {
// contains filtered or unexported fields
}
QueryEvaluator compiles queries and evaluates JSON input.
func NewQueryEvaluator ¶
func NewQueryEvaluator(compiler Compiler) *QueryEvaluator
NewQueryEvaluator returns a new QueryEvaluator using compiler.
func (*QueryEvaluator) Evaluate ¶
func (e *QueryEvaluator) Evaluate(rawQuery string, input interface{}) ([]interface{}, error)
Evaluate compiles the raw query string rawQuery and evaluates input. It returns a slice of evaluation results. If the query fails to compile, or input fails to evaluate, it errors.
type TimeoutEvaluator ¶
type TimeoutEvaluator struct {
// contains filtered or unexported fields
}
TimeoutEvaluator wraps an evaluator and sets a timeout on its execution.
func NewTimeoutEvaluator ¶
func NewTimeoutEvaluator(evaluator Evaluator, timeout time.Duration) *TimeoutEvaluator
NewTimeoutEvaluator returns a new evaluator with a timeout on its execution.
func (*TimeoutEvaluator) Evaluate ¶
func (e *TimeoutEvaluator) Evaluate(rawQuery string, input interface{}) ([]interface{}, error)
Evaluate evaluates a raw query, erroring if a time limit is exceeded.