Documentation ¶
Overview ¶
Package builtins contains utilities for implementing built-in functions.
Index ¶
- func ArrayOperand(x ast.Value, pos int) (*ast.Array, error)
- func BigIntOperand(x ast.Value, pos int) (*big.Int, error)
- func FloatToNumber(f *big.Float) ast.Number
- func IntOperand(x ast.Value, pos int) (int, error)
- func IntToNumber(i *big.Int) ast.Number
- func NewOperandElementErr(pos int, composite ast.Value, got ast.Value, expected ...string) error
- func NewOperandEnumErr(pos int, expected ...string) error
- func NewOperandErr(pos int, f string, a ...interface{}) error
- func NewOperandTypeErr(pos int, got ast.Value, expected ...string) error
- func NumberOperand(x ast.Value, pos int) (ast.Number, error)
- func NumberToFloat(n ast.Number) *big.Float
- func NumberToInt(n ast.Number) (*big.Int, error)
- func ObjectOperand(x ast.Value, pos int) (ast.Object, error)
- func RuneSliceOperand(x ast.Value, pos int) ([]rune, error)
- func SetOperand(x ast.Value, pos int) (ast.Set, error)
- func StringOperand(x ast.Value, pos int) (ast.String, error)
- func StringSliceOperand(a ast.Value, pos int) ([]string, error)
- type Cache
- type ErrOperand
- type NDBCache
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ArrayOperand ¶ added in v0.9.1
ArrayOperand converts x to an array. If the cast fails, a descriptive error is returned.
func BigIntOperand ¶ added in v0.18.0
BigIntOperand converts x to a big int. If the cast fails, a descriptive error is returned.
func FloatToNumber ¶
FloatToNumber converts f to a number.
func IntOperand ¶
IntOperand converts x to an int. If the cast fails, a descriptive error is returned.
func IntToNumber ¶ added in v0.8.0
IntToNumber converts i to a number.
func NewOperandElementErr ¶
NewOperandElementErr returns an operand error indicating an element in the composite operand was wrong.
func NewOperandEnumErr ¶
NewOperandEnumErr returns an operand error indicating a value was wrong.
func NewOperandErr ¶
NewOperandErr returns a generic operand error.
func NewOperandTypeErr ¶
NewOperandTypeErr returns an operand error indicating the operand's type was wrong.
func NumberOperand ¶
NumberOperand converts x to a number. If the cast fails, a descriptive error is returned.
func NumberToFloat ¶
NumberToFloat converts n to a big float.
func NumberToInt ¶ added in v0.8.0
NumberToInt converts n to a big int. If n cannot be converted to an big int, an error is returned.
func ObjectOperand ¶ added in v0.7.0
ObjectOperand converts x to an object. If the cast fails, a descriptive error is returned.
func RuneSliceOperand ¶ added in v0.10.1
RuneSliceOperand converts x to a []rune. If the cast fails, a descriptive error is returned.
func SetOperand ¶
SetOperand converts x to a set. If the cast fails, a descriptive error is returned.
func StringOperand ¶
StringOperand converts x to a string. If the cast fails, a descriptive error is returned.
Types ¶
type Cache ¶ added in v0.5.0
type Cache map[interface{}]interface{}
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 string
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.
func (ErrOperand) Error ¶
func (err ErrOperand) Error() string
type NDBCache ¶ added in v0.44.0
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.
func (NDBCache) MarshalJSON ¶ added in v0.44.0
Convenience functions for serializing the data structure.
func (NDBCache) Put ¶ added in v0.44.0
Put updates the cache for the named built-in. Automatically creates the 2-level hierarchy as needed.