pub enum IKun {
Show 70 variants
Constant(i64),
FloatConstant(u64),
BooleanConstant(bool),
StringConstant(String),
None,
Symbol(String),
Import(String, String),
Export(String, Id),
Module(String, Vec<Id>),
Map(Id, Id),
Filter(Id, Id),
Reduce(Id, Id, Id),
StateUpdate(Id, Id),
Choice(Id, Id, Id),
Repeat(Id, Id),
LifeCycle(Id, Id),
Meta(Id),
Trap(Id),
Return(Id),
Seq(Vec<Id>),
Compose(Id, Id),
WithContext(Id, Id),
WithConstraint(Id, Id),
CpuContext,
GpuContext,
AsyncContext,
SpatialContext,
ComptimeContext,
ResourceContext,
SafeContext,
EffectConstraint(Effect),
OwnershipConstraint(Ownership),
TypeConstraint(String),
AtomicConstraint,
Extension(String, Vec<Id>),
CrossLangCall(CrossLanguageCall),
SoALayout(Id),
AoSLayout(Id),
Tiled(usize, Id),
Unrolled(usize, Id),
Vectorized(usize, Id),
TiledMap(usize, Id, Id),
VectorizedMap(usize, Id, Id),
UnrolledMap(usize, Id, Id),
SoAMap(Id, Id),
GpuMap(Id, Id),
CpuMap(Id, Id),
Pipe(Id, Id),
Reg(Id),
Lambda(Vec<String>, Id),
Apply(Id, Vec<Id>),
Closure(Id, Vec<Id>),
ResourceClone(Id),
ResourceDrop(Id),
AddrOf(Id),
Deref(Id),
PtrOffset(Id, Id),
ClassDef(String, Vec<Id>, Id),
Table(Vec<Id>),
Pair(Id, Id),
GetIndex(Id, Id),
SetIndex(Id, Id, Id),
BinaryOp(String, Id, Id),
UnaryOp(String, Id),
StaticAccess(Id, usize),
WitnessAccess(Id, Id, usize),
DynamicAccess(Id, String, u32),
StaticCall(Id, Vec<Id>),
WitnessCall(Id, Id, usize, Vec<Id>),
DynamicCall(Id, String, Vec<Id>, u32),
}Variants§
Constant(i64)
FloatConstant(u64)
BooleanConstant(bool)
StringConstant(String)
None
None/Nil/Null constant
Symbol(String)
Import(String, String)
Import a symbol from another module: (ModuleName, SymbolName)
Export(String, Id)
Export a symbol: (SymbolName, Body)
Module(String, Vec<Id>)
A module container: (ModuleName, Items)
Map(Id, Id)
Filter(Id, Id)
Reduce(Id, Id, Id)
StateUpdate(Id, Id)
State update: (key, value)
Choice(Id, Id, Id)
Repeat(Id, Id)
LifeCycle(Id, Id)
LifeCycle: (setup, cleanup)
Meta(Id)
Meta: (body) for compile-time execution
Trap(Id)
Trap: (body) for error handling/interruption
Return(Id)
Return: (value) for returning from a function
Seq(Vec<Id>)
Compose(Id, Id)
WithContext(Id, Id)
WithConstraint(Id, Id)
CpuContext
GpuContext
AsyncContext
SpatialContext
ComptimeContext
ResourceContext
SafeContext
EffectConstraint(Effect)
OwnershipConstraint(Ownership)
TypeConstraint(String)
AtomicConstraint
Extension(String, Vec<Id>)
CrossLangCall(CrossLanguageCall)
Cross-language call
SoALayout(Id)
AoSLayout(Id)
Tiled(usize, Id)
Unrolled(usize, Id)
Vectorized(usize, Id)
TiledMap(usize, Id, Id)
Tiled version of a Map: (size, f, x)
VectorizedMap(usize, Id, Id)
Vectorized version of a Map: (width, f, x)
UnrolledMap(usize, Id, Id)
Unrolled version of a Map: (factor, f, x)
SoAMap(Id, Id)
SoA Layout applied to a Map: (f, x)
GpuMap(Id, Id)
CpuMap(Id, Id)
Pipe(Id, Id)
Declare a pipeline stage: (body, metadata)
Reg(Id)
Explicit register: (value)
Lambda(Vec<String>, Id)
Lambda definition: (params, body)
Apply(Id, Vec<Id>)
Function application: (func, args)
Closure(Id, Vec<Id>)
Closure capture: (body, captured_vars)
ResourceClone(Id)
Explicit Reference Count Clone: (target)
ResourceDrop(Id)
Explicit Reference Count Drop: (target)
AddrOf(Id)
Take address of a symbol/location: (target)
Deref(Id)
Dereference a pointer: (pointer)
PtrOffset(Id, Id)
Pointer arithmetic: (base, offset)
ClassDef(String, Vec<Id>, Id)
Class definition: (name, bases, body)
Table(Vec<Id>)
Table/Object initialization: (pairs)
Pair(Id, Id)
Key-value pair for table: (key, value)
GetIndex(Id, Id)
Get index: (receiver, index)
SetIndex(Id, Id, Id)
Set index: (receiver, index, value)
BinaryOp(String, Id, Id)
Binary operation: (op_name, left, right)
UnaryOp(String, Id)
Unary operation: (op_name, operand)
StaticAccess(Id, usize)
Static access: (receiver, offset)
WitnessAccess(Id, Id, usize)
Witness access: (receiver, witness_table, index)
DynamicAccess(Id, String, u32)
Dynamic access: (receiver, symbol_name, call_site_id)
StaticCall(Id, Vec<Id>)
Static call: (function, args)
WitnessCall(Id, Id, usize, Vec<Id>)
Witness call: (receiver, witness_table, index, args)
DynamicCall(Id, String, Vec<Id>, u32)
Dynamic call: (receiver, symbol_name, args, call_site_id)