v2

package
v0.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 19, 2025 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
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

type CaseInsensitiveObject[T any] map[string]T

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

type CaseSensitiveObject[T any] map[string]T

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

func (e *Evaluator) EvaluateBoolean(expr string) (bool, error)

EvaluateBoolean parses and evaluates the expression, returning a boolean result.

func (*Evaluator) EvaluateRaw

func (e *Evaluator) EvaluateRaw(expr string) (interface{}, error)

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 ReadOnlyArray[T any] interface {
	GetAt(i int64) T
	GetEnumerator() []T
}

type ReadOnlyObject

type ReadOnlyObject[T any] interface {
	Get(key string) T
	GetEnumerator() map[string]T
}

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)

type ValueKind

type ValueKind int
const (
	ValueKindNull ValueKind = iota
	ValueKindBoolean
	ValueKindNumber
	ValueKindString
	ValueKindObject
	ValueKindArray
)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL