Enum move_ir_types::ast::Builtin
source · pub enum Builtin {
Show 16 variants
Exists(StructName, Vec<Type>),
BorrowGlobal(bool, StructName, Vec<Type>),
MoveFrom(StructName, Vec<Type>),
MoveTo(StructName, Vec<Type>),
VecPack(Vec<Type>, u64),
VecLen(Vec<Type>),
VecImmBorrow(Vec<Type>),
VecMutBorrow(Vec<Type>),
VecPushBack(Vec<Type>),
VecPopBack(Vec<Type>),
VecUnpack(Vec<Type>, u64),
VecSwap(Vec<Type>),
Freeze,
ToU8,
ToU64,
ToU128,
}
Expand description
Builtin “function”-like operators that often have a signature not expressable in the type system and/or have access to some runtime/storage context
Variants§
Exists(StructName, Vec<Type>)
Check if there is a struct object (StructName
resolved by current module) associated with
the given address
BorrowGlobal(bool, StructName, Vec<Type>)
Get a reference to the resource(StructName
resolved by current module) associated
with the given address
MoveFrom(StructName, Vec<Type>)
Remove a resource of the given type from the account with the given address
MoveTo(StructName, Vec<Type>)
Publish an instantiated struct object into signer’s (signer is the first arg) account.
VecPack(Vec<Type>, u64)
Pack a vector fix a fixed number of elements. Zero elements means an empty vector.
VecLen(Vec<Type>)
Get the length of a vector
VecImmBorrow(Vec<Type>)
Acquire an immutable reference to the element at a given index of the vector
VecMutBorrow(Vec<Type>)
Acquire a mutable reference to the element at a given index of the vector
VecPushBack(Vec<Type>)
Push an element to the end of the vector
VecPopBack(Vec<Type>)
Pop and return an element from the end of the vector
VecUnpack(Vec<Type>, u64)
Destroy a vector of a fixed length. Zero length means destroying an empty vector.
VecSwap(Vec<Type>)
Swap the elements at twi indices in the vector
Freeze
Convert a mutable reference into an immutable one
ToU8
Cast an integer into u8.
ToU64
Cast an integer into u64.
ToU128
Cast an integer into u128.