package builtins

import "github.com/open-policy-agent/opa/topdown/builtins"

Package builtins contains utilities for implementing built-in functions.

Deprecated: This package is intended for older projects transitioning from OPA v0.x and will remain for the lifetime of OPA v1.x, but its use is not recommended. For newer features and behaviours, such as defaulting to the Rego v1 syntax, use the corresponding components in the github.com/open-policy-agent/opa/v1 package instead. See https://www.openpolicyagent.org/docs/latest/v0-compatibility/ for more information.

Index

Functions

func ArrayOperand

func ArrayOperand(x ast.Value, pos int) (*ast.Array, error)

ArrayOperand converts x to an array. If the cast fails, a descriptive error is returned.

func BigIntOperand

func BigIntOperand(x ast.Value, pos int) (*big.Int, error)

BigIntOperand converts x to a big int. If the cast fails, a descriptive error is returned.

func FloatToNumber

func FloatToNumber(f *big.Float) ast.Number

FloatToNumber converts f to a number.

func IntOperand

func IntOperand(x ast.Value, pos int) (int, error)

IntOperand converts x to an int. If the cast fails, a descriptive error is returned.

func IntToNumber

func IntToNumber(i *big.Int) ast.Number

IntToNumber converts i to a number.

func NewOperandElementErr

func NewOperandElementErr(pos int, composite ast.Value, got ast.Value, expected ...string) error

NewOperandElementErr returns an operand error indicating an element in the composite operand was wrong.

func NewOperandEnumErr

func NewOperandEnumErr(pos int, expected ...string) error

NewOperandEnumErr returns an operand error indicating a value was wrong.

func NewOperandErr

func NewOperandErr(pos int, f string, a ...interface{}) error

NewOperandErr returns a generic operand error.

func NewOperandTypeErr

func NewOperandTypeErr(pos int, got ast.Value, expected ...string) error

NewOperandTypeErr returns an operand error indicating the operand's type was wrong.

func NumberOperand

func NumberOperand(x ast.Value, pos int) (ast.Number, error)

NumberOperand converts x to a number. If the cast fails, a descriptive error is returned.

func NumberToFloat

func NumberToFloat(n ast.Number) *big.Float

NumberToFloat converts n to a big float.

func NumberToInt

func NumberToInt(n ast.Number) (*big.Int, error)

NumberToInt converts n to a big int. If n cannot be converted to an big int, an error is returned.

func ObjectOperand

func ObjectOperand(x ast.Value, pos int) (ast.Object, error)

ObjectOperand converts x to an object. If the cast fails, a descriptive error is returned.

func RuneSliceOperand

func RuneSliceOperand(x ast.Value, pos int) ([]rune, error)

RuneSliceOperand converts x to a []rune. If the cast fails, a descriptive error is returned.

func SetOperand

func SetOperand(x ast.Value, pos int) (ast.Set, error)

SetOperand converts x to a set. If the cast fails, a descriptive error is returned.

func StringOperand

func StringOperand(x ast.Value, pos int) (ast.String, error)

StringOperand converts x to a string. If the cast fails, a descriptive error is returned.

func StringSliceOperand

func StringSliceOperand(a ast.Value, pos int) ([]string, error)

StringSliceOperand converts x to a []string. If the cast fails, a descriptive error is returned.

Types

type Cache

type Cache = v1.Cache

Cache defines the built-in cache used by the top-down evaluation. The keys must be comparable and should not be of type string.

type ErrOperand

type ErrOperand = v1.ErrOperand

ErrOperand represents an invalid operand has been passed to a built-in function. Built-ins should return ErrOperand to indicate a type error has occurred.

type NDBCache

type NDBCache = v1.NDBCache

We use an ast.Object for the cached keys/values because a naive map[ast.Value]ast.Value will not correctly detect value equality of the member keys.

Source Files

builtins.go doc.go

Version
v1.4.2 (latest)
Published
May 2, 2025
Platform
linux/amd64
Imports
3 packages
Last checked
3 weeks ago

Tools for package owners.