pub enum BuiltinOp {
Show 59 variants
Add,
Sub,
Mul,
Div,
Mod,
Neg,
Abs,
Floor,
Ceil,
Round,
Eq,
Neq,
Lt,
Lte,
Gt,
Gte,
And,
Or,
Not,
Concat,
Len,
Slice,
Upper,
Lower,
Trim,
Split,
Join,
Replace,
Contains,
Map,
Filter,
Fold,
Append,
Head,
Tail,
Reverse,
FlatMap,
Length,
MergeRecords,
Keys,
Values,
HasField,
DefaultVal,
Clamp,
TruncateStr,
IntToFloat,
FloatToInt,
IntToStr,
FloatToStr,
StrToInt,
StrToFloat,
TypeOf,
IsNull,
IsList,
Edge,
Children,
HasEdge,
EdgeCount,
Anchor,
}Expand description
Built-in operations, grouped by domain.
Each operation has a fixed arity enforced at evaluation time. All operations are pure — no IO, no mutation, deterministic.
Variants§
Add
add(a: int|float, b: int|float) → int|float
Sub
sub(a: int|float, b: int|float) → int|float
Mul
mul(a: int|float, b: int|float) → int|float
Div
div(a: int|float, b: int|float) → int|float (truncating for ints)
Mod
mod_(a: int, b: int) → int
Neg
neg(a: int|float) → int|float
Abs
abs(a: int|float) → int|float
Floor
floor(a: float) → int
Ceil
ceil(a: float) → int
Round
round(a: float) → int (rounds to nearest, ties to even)
Eq
eq(a, b) → bool
Neq
neq(a, b) → bool
Lt
lt(a, b) → bool
Lte
lte(a, b) → bool
Gt
gt(a, b) → bool
Gte
gte(a, b) → bool
And
and(a: bool, b: bool) → bool
Or
or(a: bool, b: bool) → bool
Not
not(a: bool) → bool
Concat
concat(a: string, b: string) → string
Len
len(s: string) → int (byte length)
Slice
slice(s: string, start: int, end: int) → string
Upper
upper(s: string) → string
Lower
lower(s: string) → string
Trim
trim(s: string) → string
Split
split(s: string, delim: string) → [string]
Join
join(parts: [string], delim: string) → string
Replace
replace(s: string, from: string, to: string) → string
Contains
contains(s: string, substr: string) → bool
Map
map(list: [a], f: a → b) → [b]
Filter
filter(list: [a], pred: a → bool) → [a]
Fold
fold(list: [a], init: b, f: (b, a) → b) → b
Append
append(list: [a], item: a) → [a]
Head
head(list: [a]) → a
Tail
tail(list: [a]) → [a]
Reverse
reverse(list: [a]) → [a]
FlatMap
flat_map(list: [a], f: a → [b]) → [b]
Length
length(list: [a]) → int (list length, distinct from string Len)
MergeRecords
merge(a: record, b: record) → record (b fields override a)
Keys
keys(r: record) → [string]
Values
values(r: record) → [any]
HasField
has_field(r: record, name: string) → bool
DefaultVal
default(x, fallback): returns fallback if x is null, else x.
Clamp
clamp(x, min, max): clamp a numeric value to the range [min, max].
TruncateStr
truncate_str(s, max_len): truncate a string to at most max_len bytes
(char-boundary safe).
IntToFloat
int_to_float(n: int) → float
FloatToInt
float_to_int(f: float) → int (truncates)
IntToStr
int_to_str(n: int) → string
FloatToStr
float_to_str(f: float) → string
StrToInt
str_to_int(s: string) → int (fails on non-numeric)
StrToFloat
str_to_float(s: string) → float (fails on non-numeric)
TypeOf
type_of(v) → string (returns type name)
IsNull
is_null(v) → bool
IsList
is_list(v) → bool
Edge
edge(node_ref: string, edge_kind: string) → value
Follow a named edge from a node in the instance tree.
Children
children(node_ref: string) → [value]
Get all children of a node in the instance tree.
HasEdge
has_edge(node_ref: string, edge_kind: string) → bool
Check if a node has a specific outgoing edge.
EdgeCount
edge_count(node_ref: string) → int
Count outgoing edges from a node.
Anchor
anchor(node_ref: string) → string
Get the schema anchor (sort/kind) of a node.