func EvaluatorExprCostLimit(limit int) EngineOption {
	return func(e *Engine) (*Engine, error) {
		e.limits.EvaluatorExprCostLimit = limit
		return e, nil
	}
}
EvaluatorExprCostLimit sets the evaluator expression cost limit supported by the compilation and
runtime components.
package policy
import (
	"github.com/google/cel-policy-templates-go/policy/model"
	"github.com/google/cel-policy-templates-go/policy/runtime"
	"github.com/google/cel-go/cel"
	"github.com/google/cel-go/interpreter"
)
type EngineOption func(*Engine) (*Engine, error)
type Selector func(model.Selector, interpreter.Activation) bool
func Selectors(selectors ...Selector) EngineOption {
	return func(e *Engine) (*Engine, error) {
		e.selectors = selectors
		return e, nil
	}
}
func StandardExprEnv(exprEnv *cel.Env) EngineOption {
	return func(e *Engine) (*Engine, error) {
		e.Registry = model.NewRegistry(exprEnv)
		return e, nil
	}
}
func RangeLimit(limit int) EngineOption {
	return func(e *Engine) (*Engine, error) {
		e.limits.RangeLimit = limit
		return e, nil
	}
}
func EvaluatorTermLimit(limit int) EngineOption {
	return func(e *Engine) (*Engine, error) {
		e.limits.EvaluatorTermLimit = limit
		return e, nil
	}
}
func EvaluatorProductionLimit(limit int) EngineOption {
	return func(e *Engine) (*Engine, error) {
		e.limits.EvaluatorProductionLimit = limit
		return e, nil
	}
}
func EvaluatorDecisionLimit(limit int) EngineOption {
	return func(e *Engine) (*Engine, error) {
		e.limits.EvaluatorDecisionLimit = limit
		return e, nil
	}
}
func ValidatorTermLimit(limit int) EngineOption {
	return func(e *Engine) (*Engine, error) {
		e.limits.ValidatorTermLimit = limit
		return e, nil
	}
}
func ValidatorProductionLimit(limit int) EngineOption {
	return func(e *Engine) (*Engine, error) {
		e.limits.ValidatorProductionLimit = limit
		return e, nil
	}
}
func RuleLimit(limit int) EngineOption {
	return func(e *Engine) (*Engine, error) {
		e.limits.RuleLimit = limit
		return e, nil
	}
}