Documentation
¶
Index ¶
- Variables
- type BasicArray
- type Case
- type CaseInsensitiveObject
- type CaseSensitiveObject
- type Contains
- type EndsWith
- type EvaluationContext
- type EvaluationResult
- func (er *EvaluationResult) AbstractEqual(other *EvaluationResult) bool
- func (er *EvaluationResult) AbstractGreaterThan(other *EvaluationResult) bool
- func (er *EvaluationResult) AbstractGreaterThanOrEqual(other *EvaluationResult) bool
- func (er *EvaluationResult) AbstractLessThan(other *EvaluationResult) bool
- func (er *EvaluationResult) AbstractLessThanOrEqual(other *EvaluationResult) bool
- func (er *EvaluationResult) AbstractNotEqual(other *EvaluationResult) bool
- func (er *EvaluationResult) ConvertToNumber() float64
- func (er *EvaluationResult) ConvertToString() string
- func (er *EvaluationResult) IsFalsy() bool
- func (er *EvaluationResult) IsPrimitive() bool
- func (er *EvaluationResult) IsTruthy() bool
- func (er *EvaluationResult) Kind() ValueKind
- func (er *EvaluationResult) Raw() interface{}
- func (er *EvaluationResult) TryGetCollectionInterface() (interface{}, bool)
- func (er *EvaluationResult) Value() interface{}
- type Evaluator
- func (e *Evaluator) Context() *EvaluationContext
- func (e *Evaluator) Evaluate(root exprparser.Node) (*EvaluationResult, error)
- func (e *Evaluator) EvaluateBoolean(expr string) (bool, error)
- func (e *Evaluator) EvaluateRaw(expr string) (interface{}, error)
- func (e *Evaluator) ToRaw(result *EvaluationResult) (interface{}, error)
- type FilteredArray
- type Format
- type FromJSON
- type Function
- type Join
- type ReadOnlyArray
- type ReadOnlyObject
- type StartsWith
- type ToJSON
- type ValueKind
Constants ¶
This section is empty.
Variables ¶
var ExpressionConstants = struct { True string False string NumberFormat string }{ True: "true", False: "false", NumberFormat: "%.15g", }
ExpressionConstants holds string constants used in conversions.
Functions ¶
This section is empty.
Types ¶
type BasicArray ¶
type BasicArray[T any] []T
func (BasicArray[T]) GetAt ¶
func (a BasicArray[T]) GetAt(i int64) T
func (BasicArray[T]) GetEnumerator ¶
func (a BasicArray[T]) GetEnumerator() []T
type Case ¶
type Case struct {
}
func (Case) Evaluate ¶
func (Case) Evaluate(eval *Evaluator, args []exprparser.Node) (*EvaluationResult, error)
type CaseInsensitiveObject ¶
func GetFunctions ¶
func GetFunctions() CaseInsensitiveObject[Function]
func (CaseInsensitiveObject[T]) Get ¶
func (o CaseInsensitiveObject[T]) Get(key string) T
func (CaseInsensitiveObject[T]) GetEnumerator ¶
func (o CaseInsensitiveObject[T]) GetEnumerator() map[string]T
type CaseSensitiveObject ¶
func (CaseSensitiveObject[T]) Get ¶
func (o CaseSensitiveObject[T]) Get(key string) T
func (CaseSensitiveObject[T]) GetEnumerator ¶
func (o CaseSensitiveObject[T]) GetEnumerator() map[string]T
type Contains ¶
type Contains struct {
}
func (Contains) Evaluate ¶
func (Contains) Evaluate(eval *Evaluator, args []exprparser.Node) (*EvaluationResult, error)
type EndsWith ¶
type EndsWith struct {
}
func (EndsWith) Evaluate ¶
func (EndsWith) Evaluate(eval *Evaluator, args []exprparser.Node) (*EvaluationResult, error)
type EvaluationContext ¶
type EvaluationContext struct {
Variables ReadOnlyObject[any]
Functions ReadOnlyObject[Function]
}
EvaluationContext holds variables that can be referenced in expressions.
func NewEvaluationContext ¶
func NewEvaluationContext() *EvaluationContext
type EvaluationResult ¶
type EvaluationResult struct {
// contains filtered or unexported fields
}
func CreateIntermediateResult ¶
func CreateIntermediateResult(context *EvaluationContext, obj interface{}) *EvaluationResult
CreateIntermediateResult creates an EvaluationResult from an arbitrary object.
func NewEvaluationResult ¶
func NewEvaluationResult(context *EvaluationContext, level int, val interface{}, kind ValueKind, raw interface{}, omitTracing bool) *EvaluationResult
NewEvaluationResult creates a new EvaluationResult.
func (*EvaluationResult) AbstractEqual ¶
func (er *EvaluationResult) AbstractEqual(other *EvaluationResult) bool
AbstractEqual compares two EvaluationResults using the abstract equality algorithm.
func (*EvaluationResult) AbstractGreaterThan ¶
func (er *EvaluationResult) AbstractGreaterThan(other *EvaluationResult) bool
AbstractGreaterThan compares two EvaluationResults.
func (*EvaluationResult) AbstractGreaterThanOrEqual ¶
func (er *EvaluationResult) AbstractGreaterThanOrEqual(other *EvaluationResult) bool
AbstractGreaterThanOrEqual
func (*EvaluationResult) AbstractLessThan ¶
func (er *EvaluationResult) AbstractLessThan(other *EvaluationResult) bool
AbstractLessThan
func (*EvaluationResult) AbstractLessThanOrEqual ¶
func (er *EvaluationResult) AbstractLessThanOrEqual(other *EvaluationResult) bool
AbstractLessThanOrEqual
func (*EvaluationResult) AbstractNotEqual ¶
func (er *EvaluationResult) AbstractNotEqual(other *EvaluationResult) bool
AbstractNotEqual
func (*EvaluationResult) ConvertToNumber ¶
func (er *EvaluationResult) ConvertToNumber() float64
ConvertToNumber converts the value to a float64.
func (*EvaluationResult) ConvertToString ¶
func (er *EvaluationResult) ConvertToString() string
ConvertToString converts the value to a string.
func (*EvaluationResult) IsFalsy ¶
func (er *EvaluationResult) IsFalsy() bool
IsFalsy implements the logic from the C# class.
func (*EvaluationResult) IsPrimitive ¶
func (er *EvaluationResult) IsPrimitive() bool
IsPrimitive returns true if the kind is a primitive type.
func (*EvaluationResult) IsTruthy ¶
func (er *EvaluationResult) IsTruthy() bool
IsTruthy is the negation of IsFalsy.
func (*EvaluationResult) Kind ¶
func (er *EvaluationResult) Kind() ValueKind
Kind returns the ValueKind of the result.
func (*EvaluationResult) Raw ¶
func (er *EvaluationResult) Raw() interface{}
Raw returns the raw value that was passed to the constructor.
func (*EvaluationResult) TryGetCollectionInterface ¶
func (er *EvaluationResult) TryGetCollectionInterface() (interface{}, bool)
TryGetCollectionInterface returns the underlying collection if the value is an array or object.
func (*EvaluationResult) Value ¶
func (er *EvaluationResult) Value() interface{}
Value returns the canonical value.
type Evaluator ¶
type Evaluator struct {
// contains filtered or unexported fields
}
Evaluator evaluates workflow expressions using the lexer and parser from workflow.
func NewEvaluator ¶
func NewEvaluator(ctx *EvaluationContext) *Evaluator
NewEvaluator creates an Evaluator with the supplied context.
func (*Evaluator) Context ¶
func (e *Evaluator) Context() *EvaluationContext
func (*Evaluator) Evaluate ¶
func (e *Evaluator) Evaluate(root exprparser.Node) (*EvaluationResult, error)
func (*Evaluator) EvaluateBoolean ¶
EvaluateBoolean parses and evaluates the expression, returning a boolean result.
func (*Evaluator) EvaluateRaw ¶
Evaluate parses and evaluates the expression, returning a boolean result.
func (*Evaluator) ToRaw ¶
func (e *Evaluator) ToRaw(result *EvaluationResult) (interface{}, error)
type FilteredArray ¶
type FilteredArray []interface{}
func (FilteredArray) GetAt ¶
func (a FilteredArray) GetAt(i int64) interface{}
func (FilteredArray) GetEnumerator ¶
func (a FilteredArray) GetEnumerator() []interface{}
type Format ¶
type Format struct {
}
func (Format) Evaluate ¶
func (Format) Evaluate(eval *Evaluator, args []exprparser.Node) (*EvaluationResult, error)
type FromJSON ¶
type FromJSON struct {
}
func (FromJSON) Evaluate ¶
func (FromJSON) Evaluate(eval *Evaluator, args []exprparser.Node) (*EvaluationResult, error)
type Function ¶
type Function interface {
Evaluate(eval *Evaluator, args []exprparser.Node) (*EvaluationResult, error)
}
type Join ¶
type Join struct {
}
func (Join) Evaluate ¶
func (Join) Evaluate(eval *Evaluator, args []exprparser.Node) (*EvaluationResult, error)
type ReadOnlyArray ¶
type ReadOnlyObject ¶
type StartsWith ¶
type StartsWith struct {
}
func (StartsWith) Evaluate ¶
func (StartsWith) Evaluate(eval *Evaluator, args []exprparser.Node) (*EvaluationResult, error)
type ToJSON ¶
type ToJSON struct {
}
func (ToJSON) Evaluate ¶
func (ToJSON) Evaluate(eval *Evaluator, args []exprparser.Node) (*EvaluationResult, error)