nodes

package
v0.1.9 Latest Latest
Warning

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

Go to latest
Published: Nov 21, 2025 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Avg

func Avg(nodes ...adapters.Node) adapters.Node

func Call

func Call(funcName string, argNodes ...adapters.Node) adapters.Node

Call defines a function call. It tries to find the provided funcName under it's evaluated scope and call it with the given args. It will evaluate all args before providing them to the funcName. Returns a NodeError if the funcName is not found, callable or has wrong arguments. Context doesn't need to be given as an argument, and is handled automatically by nodes.

func Coalesce added in v0.1.9

func Coalesce(definition string, or adapters.Node) adapters.Node

func Equal

func Equal(first, second adapters.Node) adapters.Node

Equal defines an equality node, all input nodes should evaluate to the same type, and be not nil. Returns a boolean value indicating whether the inputs are equal.

func Exists added in v0.1.9

func Exists(definition string) adapters.Node

func Greater

func Greater(first, second adapters.Node) adapters.Node

Greater defines a greater node, all input nodes should evaluate to the same type, and be not nil. Returns a boolean value indicating whether the first node is greater than the second.

func GreaterOrEqual

func GreaterOrEqual(first, second adapters.Node) adapters.Node

Greater defines a greater node, all input nodes should evaluate to the same type, and be not nil. Returns a boolean value indicating whether the first node is greater or equal than the second.

func HasPrefix

func HasPrefix(text, prefix adapters.Node) adapters.Node

Equal defines a prefix node, all input nodes should evaluate to the same type, and be not nil. Returns a boolean value indicating whether the text has the prefix.

func HasSuffix

func HasSuffix(text, suffix adapters.Node) adapters.Node

Equal defines a suffix node, all input nodes should evaluate to the same type, and be not nil. Returns a boolean value indicating whether the text has the suffix.

func If

func If(condition, thenBranch adapters.Node, elseBranch ...adapters.Node) adapters.Node

func IsEmpty

func IsEmpty(node adapters.Node) adapters.Node

func Not

func Not(expression adapters.Node) adapters.Node

Not defines a not node, the input node should evaluate to boolean and be not-nil. It inverts the result of the evaluated boolean.

func Or

func Or(nodes ...adapters.Node) adapters.Node

Or defines an or node, there must be at least one input. It returns the value of the first error, true boolean or non-boolean expression.

func Reference

func Reference(key string) adapters.Node

func Smaller

func Smaller(first, second adapters.Node) adapters.Node

Smaller defines a smaller node, all input nodes should evaluate to the same type, and be not nil. Returns a boolean value indicating whether the first node is smaller to the second.

func SmallerOrEqual

func SmallerOrEqual(first, second adapters.Node) adapters.Node

SmallerOrEqual defines a greater node, all input nodes should evaluate to the same type, and be not nil. Returns a boolean value indicating whether the first node is smaller or equal to the second.

func Sum

func Sum(nodes ...adapters.Node) adapters.Node

Types

type AvgNode

type AvgNode struct {
	// contains filtered or unexported fields
}

func (*AvgNode) Eval

func (node *AvgNode) Eval(scope adapters.Scope) adapters.Value

func (*AvgNode) Register

func (node *AvgNode) Register(codex adapters.Codex) error

func (*AvgNode) Scalar

func (node *AvgNode) Scalar() string

func (*AvgNode) Shape

func (node *AvgNode) Shape() []adapters.KeyNode

func (*AvgNode) Type

func (node *AvgNode) Type() adapters.NodeType

type CallNode

type CallNode struct {
	// contains filtered or unexported fields
}

func (*CallNode) Eval

func (node *CallNode) Eval(scope adapters.Scope) adapters.Value

func (*CallNode) Register

func (node *CallNode) Register(codex adapters.Codex) error

func (*CallNode) Scalar

func (node *CallNode) Scalar() string

func (*CallNode) Shape

func (node *CallNode) Shape() []adapters.KeyNode

func (*CallNode) Type

func (node *CallNode) Type() adapters.NodeType

type CoalesceNode added in v0.1.9

type CoalesceNode struct {
	// contains filtered or unexported fields
}

func (*CoalesceNode) Eval added in v0.1.9

func (node *CoalesceNode) Eval(scope adapters.Scope) adapters.Value

func (*CoalesceNode) Register added in v0.1.9

func (node *CoalesceNode) Register(codex adapters.Codex) error

func (*CoalesceNode) Scalar added in v0.1.9

func (node *CoalesceNode) Scalar() string

func (*CoalesceNode) Shape added in v0.1.9

func (node *CoalesceNode) Shape() []adapters.KeyNode

func (*CoalesceNode) Type added in v0.1.9

func (node *CoalesceNode) Type() adapters.NodeType

type EqualNode

type EqualNode struct {
	// contains filtered or unexported fields
}

func (*EqualNode) Eval

func (node *EqualNode) Eval(scope adapters.Scope) adapters.Value

func (*EqualNode) Register

func (node *EqualNode) Register(codex adapters.Codex) error

func (*EqualNode) Scalar

func (node *EqualNode) Scalar() string

func (*EqualNode) Shape

func (node *EqualNode) Shape() []adapters.KeyNode

func (*EqualNode) Type

func (node *EqualNode) Type() adapters.NodeType

type ExistsNode added in v0.1.9

type ExistsNode struct {
	// contains filtered or unexported fields
}

func (*ExistsNode) Eval added in v0.1.9

func (node *ExistsNode) Eval(scope adapters.Scope) adapters.Value

func (*ExistsNode) Register added in v0.1.9

func (node *ExistsNode) Register(codex adapters.Codex) error

func (*ExistsNode) Scalar added in v0.1.9

func (node *ExistsNode) Scalar() string

func (*ExistsNode) Shape added in v0.1.9

func (node *ExistsNode) Shape() []adapters.KeyNode

func (*ExistsNode) Type added in v0.1.9

func (node *ExistsNode) Type() adapters.NodeType

type GreaterNode

type GreaterNode struct {
	// contains filtered or unexported fields
}

func (*GreaterNode) Eval

func (node *GreaterNode) Eval(scope adapters.Scope) adapters.Value

func (*GreaterNode) Register

func (node *GreaterNode) Register(codex adapters.Codex) error

func (*GreaterNode) Scalar

func (node *GreaterNode) Scalar() string

func (*GreaterNode) Shape

func (node *GreaterNode) Shape() []adapters.KeyNode

func (*GreaterNode) Type

func (node *GreaterNode) Type() adapters.NodeType

type HasPrefixNode

type HasPrefixNode struct {
	// contains filtered or unexported fields
}

func (*HasPrefixNode) Eval

func (node *HasPrefixNode) Eval(scope adapters.Scope) adapters.Value

func (*HasPrefixNode) Register

func (node *HasPrefixNode) Register(codex adapters.Codex) error

func (*HasPrefixNode) Scalar

func (node *HasPrefixNode) Scalar() string

func (*HasPrefixNode) Shape

func (node *HasPrefixNode) Shape() []adapters.KeyNode

func (*HasPrefixNode) Type

func (node *HasPrefixNode) Type() adapters.NodeType

type HasSuffixNode

type HasSuffixNode struct {
	// contains filtered or unexported fields
}

func (*HasSuffixNode) Eval

func (node *HasSuffixNode) Eval(scope adapters.Scope) adapters.Value

func (*HasSuffixNode) Register

func (node *HasSuffixNode) Register(codex adapters.Codex) error

func (*HasSuffixNode) Scalar

func (node *HasSuffixNode) Scalar() string

func (*HasSuffixNode) Shape

func (node *HasSuffixNode) Shape() []adapters.KeyNode

func (*HasSuffixNode) Type

func (node *HasSuffixNode) Type() adapters.NodeType

type IfNode

type IfNode struct {
	// contains filtered or unexported fields
}

func (*IfNode) Eval

func (node *IfNode) Eval(scope adapters.Scope) adapters.Value

func (*IfNode) Register

func (node *IfNode) Register(codex adapters.Codex) error

func (*IfNode) Scalar

func (node *IfNode) Scalar() string

func (*IfNode) Shape

func (node *IfNode) Shape() []adapters.KeyNode

func (*IfNode) Type

func (node *IfNode) Type() adapters.NodeType

type IsEmptyNode

type IsEmptyNode struct {
	// contains filtered or unexported fields
}

func (*IsEmptyNode) Eval

func (node *IsEmptyNode) Eval(scope adapters.Scope) adapters.Value

func (*IsEmptyNode) Register

func (node *IsEmptyNode) Register(codex adapters.Codex) error

func (*IsEmptyNode) Scalar

func (node *IsEmptyNode) Scalar() string

func (*IsEmptyNode) Shape

func (node *IsEmptyNode) Shape() []adapters.KeyNode

func (*IsEmptyNode) Type added in v0.1.8

func (node *IsEmptyNode) Type() adapters.NodeType

type LiteralNode

type LiteralNode struct {
	// contains filtered or unexported fields
}

func Literal

func Literal(value any) *LiteralNode

Literal represents a value/node. Use Literal with functions to define callable definitions. Use Literal with structs or maps to define definitions with children attributes. time.Time is serialized as time(RFC3339) by default.

func (*LiteralNode) Call

func (node *LiteralNode) Call(ctx context.Context, key string, args ...adapters.Value) adapters.Value

func (*LiteralNode) Definition

func (node *LiteralNode) Definition(key string) (adapters.Value, bool)

func (*LiteralNode) Eval

func (node *LiteralNode) Eval(scope adapters.Scope) adapters.Value

func (*LiteralNode) Register

func (node *LiteralNode) Register(codex adapters.Codex) error

func (*LiteralNode) Scalar

func (node *LiteralNode) Scalar() string

func (*LiteralNode) Shape

func (node *LiteralNode) Shape() []adapters.KeyNode

func (*LiteralNode) Type

func (node *LiteralNode) Type() adapters.NodeType

func (*LiteralNode) Value

func (node *LiteralNode) Value() any

type NotNode

type NotNode struct {
	// contains filtered or unexported fields
}

func (*NotNode) Eval

func (node *NotNode) Eval(scope adapters.Scope) adapters.Value

func (*NotNode) Register

func (node *NotNode) Register(codex adapters.Codex) error

func (*NotNode) Scalar

func (node *NotNode) Scalar() string

func (*NotNode) Shape

func (node *NotNode) Shape() []adapters.KeyNode

func (*NotNode) Type

func (node *NotNode) Type() adapters.NodeType

type OrNode

type OrNode struct {
	// contains filtered or unexported fields
}

func (*OrNode) Eval

func (node *OrNode) Eval(scope adapters.Scope) adapters.Value

func (*OrNode) Register

func (node *OrNode) Register(codex adapters.Codex) error

func (*OrNode) Scalar

func (node *OrNode) Scalar() string

func (*OrNode) Shape

func (node *OrNode) Shape() []adapters.KeyNode

func (*OrNode) Type

func (node *OrNode) Type() adapters.NodeType

type ReferenceNode

type ReferenceNode struct {
	// contains filtered or unexported fields
}

func (*ReferenceNode) Eval

func (node *ReferenceNode) Eval(scope adapters.Scope) adapters.Value

func (*ReferenceNode) Register added in v0.1.7

func (node *ReferenceNode) Register(codex adapters.Codex) error

func (*ReferenceNode) Scalar

func (node *ReferenceNode) Scalar() string

func (*ReferenceNode) Shape

func (node *ReferenceNode) Shape() []adapters.KeyNode

func (*ReferenceNode) Type

func (node *ReferenceNode) Type() adapters.NodeType

type SmallerNode

type SmallerNode struct {
	// contains filtered or unexported fields
}

func (*SmallerNode) Eval

func (node *SmallerNode) Eval(scope adapters.Scope) adapters.Value

func (*SmallerNode) Register

func (node *SmallerNode) Register(codex adapters.Codex) error

func (*SmallerNode) Scalar

func (node *SmallerNode) Scalar() string

func (*SmallerNode) Shape

func (node *SmallerNode) Shape() []adapters.KeyNode

func (*SmallerNode) Type

func (node *SmallerNode) Type() adapters.NodeType

type SumNode

type SumNode struct {
	// contains filtered or unexported fields
}

func (*SumNode) Eval

func (node *SumNode) Eval(scope adapters.Scope) adapters.Value

func (*SumNode) Register

func (node *SumNode) Register(codex adapters.Codex) error

func (*SumNode) Scalar

func (node *SumNode) Scalar() string

func (*SumNode) Shape

func (node *SumNode) Shape() []adapters.KeyNode

func (*SumNode) Type

func (node *SumNode) Type() adapters.NodeType

Jump to

Keyboard shortcuts

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