package functions

import "github.com/google/cel-go/interpreter/functions"

Package functions defines the standard builtin functions supported by the interpreter and as declared within the checker#StandardDeclarations.

Index

Types

type BinaryOp

type BinaryOp func(lhs ref.Val, rhs ref.Val) ref.Val

BinaryOp is a function that takes two values and produces an output.

type FunctionOp

type FunctionOp func(values ...ref.Val) ref.Val

FunctionOp is a function with accepts zero or more arguments and produces an value (as interface{}) or error as a result.

type Overload

type Overload struct {
	// Operator name as written in an expression or defined within
	// operators.go.
	Operator string

	// Operand trait used to dispatch the call. The zero-value indicates a
	// global function overload or that one of the Unary / Binary / Function
	// definitions should be used to execute the call.
	OperandTrait int

	// Unary defines the overload with a UnaryOp implementation. May be nil.
	Unary UnaryOp

	// Binary defines the overload with a BinaryOp implementation. May be nil.
	Binary BinaryOp

	// Function defines the overload with a FunctionOp implementation. May be
	// nil.
	Function FunctionOp

	// NonStrict specifies whether the Overload will tolerate arguments that
	// are types.Err or types.Unknown.
	NonStrict bool
}

Overload defines a named overload of a function, indicating an operand trait which must be present on the first argument to the overload as well as one of either a unary, binary, or function implementation.

The majority of operators within the expression language are unary or binary and the specializations simplify the call contract for implementers of types with operator overloads. Any added complexity is assumed to be handled by the generic FunctionOp.

func StandardOverloads

func StandardOverloads() []*Overload

StandardOverloads returns the definitions of the built-in overloads.

type UnaryOp

type UnaryOp func(value ref.Val) ref.Val

UnaryOp is a function that takes a single value and produces an output.

Source Files

functions.go standard.go

Version
v0.12.3
Published
Jul 13, 2022
Platform
linux/amd64
Imports
5 packages
Last checked
now

Tools for package owners.