sway_ast::expr::op_code

Enum Instruction

Source
pub enum Instruction {
Show 93 variants Add { token: AddOpcode, ret: Ident, lhs: Ident, rhs: Ident, }, Addi { token: AddiOpcode, ret: Ident, lhs: Ident, rhs: AsmImmediate, }, And { token: AndOpcode, ret: Ident, lhs: Ident, rhs: Ident, }, Andi { token: AndiOpcode, ret: Ident, lhs: Ident, rhs: AsmImmediate, }, Div { token: DivOpcode, ret: Ident, lhs: Ident, rhs: Ident, }, Divi { token: DiviOpcode, ret: Ident, lhs: Ident, rhs: AsmImmediate, }, Eq { token: EqOpcode, ret: Ident, lhs: Ident, rhs: Ident, }, Exp { token: ExpOpcode, ret: Ident, base: Ident, power: Ident, }, Expi { token: ExpiOpcode, ret: Ident, base: Ident, power: AsmImmediate, }, Gt { token: GtOpcode, ret: Ident, lhs: Ident, rhs: Ident, }, Lt { token: LtOpcode, ret: Ident, lhs: Ident, rhs: Ident, }, Mlog { token: MlogOpcode, ret: Ident, arg: Ident, base: Ident, }, Mod { token: ModOpcode, ret: Ident, lhs: Ident, rhs: Ident, }, Modi { token: ModiOpcode, ret: Ident, lhs: Ident, rhs: AsmImmediate, }, Move { token: MoveOpcode, ret: Ident, from: Ident, }, Movi { token: MoviOpcode, ret: Ident, arg: AsmImmediate, }, Mroo { token: MrooOpcode, ret: Ident, arg: Ident, root: Ident, }, Mul { token: MulOpcode, ret: Ident, lhs: Ident, rhs: Ident, }, Muli { token: MuliOpcode, ret: Ident, lhs: Ident, rhs: AsmImmediate, }, Noop { token: NoopOpcode, }, Not { token: NotOpcode, ret: Ident, arg: Ident, }, Or { token: OrOpcode, ret: Ident, lhs: Ident, rhs: Ident, }, Ori { token: OriOpcode, ret: Ident, lhs: Ident, rhs: AsmImmediate, }, Sll { token: SllOpcode, ret: Ident, lhs: Ident, rhs: Ident, }, Slli { token: SlliOpcode, ret: Ident, lhs: Ident, rhs: AsmImmediate, }, Srl { token: SrlOpcode, ret: Ident, lhs: Ident, rhs: Ident, }, Srli { token: SrliOpcode, ret: Ident, lhs: Ident, rhs: AsmImmediate, }, Sub { token: SubOpcode, ret: Ident, lhs: Ident, rhs: Ident, }, Subi { token: SubiOpcode, ret: Ident, lhs: Ident, rhs: AsmImmediate, }, Wqcm { token: WqcmOpcode, ret: Ident, lhs: Ident, rhs: Ident, op_mode: AsmImmediate, }, Wqop { token: WqopOpcode, ret: Ident, lhs: Ident, rhs: Ident, op_mode: AsmImmediate, }, Wqml { token: WqmlOpcode, ret: Ident, lhs: Ident, rhs: Ident, indirect: AsmImmediate, }, Wqdv { token: WqdvOpcode, ret: Ident, lhs: Ident, rhs: Ident, indirect: AsmImmediate, }, Wqmd { token: WqmdOpcode, ret: Ident, lhs_a: Ident, lhs_b: Ident, rhs: Ident, }, Wqam { token: WqamOpcode, ret: Ident, lhs_a: Ident, lhs_b: Ident, rhs: Ident, }, Wqmm { token: WqmmOpcode, ret: Ident, lhs_a: Ident, lhs_b: Ident, rhs: Ident, }, Xor { token: XorOpcode, ret: Ident, lhs: Ident, rhs: Ident, }, Xori { token: XoriOpcode, ret: Ident, lhs: Ident, rhs: AsmImmediate, }, Jmp { token: JmpOpcode, offset: Ident, }, Ji { token: JiOpcode, offset: AsmImmediate, }, Jne { token: JneOpcode, lhs: Ident, rhs: Ident, offset: Ident, }, Jnei { token: JneiOpcode, lhs: Ident, rhs: Ident, offset: AsmImmediate, }, Jnzi { token: JnziOpcode, arg: Ident, offset: AsmImmediate, }, Ret { token: RetOpcode, value: Ident, }, Aloc { token: AlocOpcode, size: Ident, }, Cfei { token: CfeiOpcode, size: AsmImmediate, }, Cfsi { token: CfsiOpcode, size: AsmImmediate, }, Cfe { token: CfeOpcode, size: Ident, }, Cfs { token: CfsOpcode, size: Ident, }, Lb { token: LbOpcode, ret: Ident, addr: Ident, offset: AsmImmediate, }, Lw { token: LwOpcode, ret: Ident, addr: Ident, offset: AsmImmediate, }, Mcl { token: MclOpcode, addr: Ident, size: Ident, }, Mcli { token: McliOpcode, addr: Ident, size: AsmImmediate, }, Mcp { token: McpOpcode, dst_addr: Ident, src_addr: Ident, size: Ident, }, Mcpi { token: McpiOpcode, dst_addr: Ident, src_addr: Ident, size: AsmImmediate, }, Meq { token: MeqOpcode, ret: Ident, lhs_addr: Ident, rhs_addr: Ident, size: Ident, }, Sb { token: SbOpcode, addr: Ident, value: Ident, offset: AsmImmediate, }, Sw { token: SwOpcode, addr: Ident, value: Ident, offset: AsmImmediate, }, Bal { token: BalOpcode, ret: Ident, asset: Ident, contract: Ident, }, Bhei { token: BheiOpcode, ret: Ident, }, Bhsh { token: BhshOpcode, addr: Ident, height: Ident, }, Burn { token: BurnOpcode, coins: Ident, sub_id: Ident, }, Call { token: CallOpcode, args_addr: Ident, coins: Ident, asset: Ident, gas: Ident, }, Cb { token: CbOpcode, addr: Ident, }, Ccp { token: CcpOpcode, dst_addr: Ident, contract: Ident, src_addr: Ident, size: Ident, }, Croo { token: CrooOpcode, addr: Ident, contract: Ident, }, Csiz { token: CsizOpcode, ret: Ident, contract: Ident, }, Bsiz { token: BsizOpcode, ret: Ident, contract: Ident, }, Ldc { token: LdcOpcode, contract: Ident, addr: Ident, size: Ident, mode: AsmImmediate, }, Bldd { token: BlddOpcode, dst_ptr: Ident, addr: Ident, offset: Ident, len: Ident, }, Log { token: LogOpcode, reg_a: Ident, reg_b: Ident, reg_c: Ident, reg_d: Ident, }, Logd { token: LogdOpcode, reg_a: Ident, reg_b: Ident, addr: Ident, size: Ident, }, Mint { token: MintOpcode, coins: Ident, sub_id: Ident, }, Retd { token: RetdOpcode, addr: Ident, size: Ident, }, Rvrt { token: RvrtOpcode, value: Ident, }, Smo { token: SmoOpcode, addr: Ident, len: Ident, output: Ident, coins: Ident, }, Scwq { token: ScwqOpcode, addr: Ident, is_set: Ident, len: Ident, }, Srw { token: SrwOpcode, ret: Ident, is_set: Ident, state_addr: Ident, }, Srwq { token: SrwqOpcode, addr: Ident, is_set: Ident, state_addr: Ident, count: Ident, }, Sww { token: SwwOpcode, state_addr: Ident, is_set: Ident, value: Ident, }, Swwq { token: SwwqOpcode, state_addr: Ident, is_set: Ident, addr: Ident, count: Ident, }, Time { token: TimeOpcode, ret: Ident, height: Ident, }, Tr { token: TrOpcode, contract: Ident, coins: Ident, asset: Ident, }, Tro { token: TroOpcode, addr: Ident, output: Ident, coins: Ident, asset: Ident, }, Eck1 { token: Eck1Opcode, addr: Ident, sig: Ident, hash: Ident, }, Ecr1 { token: Ecr1Opcode, addr: Ident, sig: Ident, hash: Ident, }, Ed19 { token: Ed19Opcode, addr: Ident, sig: Ident, hash: Ident, len: Ident, }, K256 { token: K256Opcode, addr: Ident, data: Ident, size: Ident, }, S256 { token: S256Opcode, addr: Ident, data: Ident, size: Ident, }, Flag { token: FlagOpcode, value: Ident, }, Gm { token: GmOpcode, ret: Ident, op: AsmImmediate, }, Gtf { token: GtfOpcode, ret: Ident, index: Ident, tx_field_id: AsmImmediate, }, Blob { token: BlobOpcode, size: AsmImmediate, },
}

Variantsยง

ยง

Add

ยง

Addi

ยง

And

ยง

Andi

ยง

Div

ยง

Divi

ยง

Eq

ยง

Exp

ยง

Expi

ยง

Gt

ยง

Lt

ยง

Mlog

ยง

Mod

ยง

Modi

ยง

Move

ยง

Movi

ยง

Mroo

ยง

Mul

ยง

Muli

ยง

Noop

Fields

ยง

Not

ยง

Or

ยง

Ori

ยง

Sll

ยง

Slli

ยง

Srl

ยง

Srli

ยง

Sub

ยง

Subi

ยง

Wqcm

ยง

Wqop

ยง

Wqml

ยง

Wqdv

ยง

Wqmd

ยง

Wqam

ยง

Wqmm

ยง

Xor

ยง

Xori

ยง

Jmp

Fields

ยงoffset: Ident
ยง

Ji

ยง

Jne

ยง

Jnei

ยง

Jnzi

ยง

Ret

Fields

ยง

Aloc

Fields

ยง

Cfei

ยง

Cfsi

ยง

Cfe

Fields

ยง

Cfs

Fields

ยง

Lb

ยง

Lw

ยง

Mcl

Fields

ยง

Mcli

ยง

Mcp

Fields

ยงdst_addr: Ident
ยงsrc_addr: Ident
ยง

Mcpi

Fields

ยงdst_addr: Ident
ยงsrc_addr: Ident
ยง

Meq

Fields

ยงlhs_addr: Ident
ยงrhs_addr: Ident
ยง

Sb

ยง

Sw

ยง

Bal

Fields

ยงcontract: Ident
ยง

Bhei

Fields

ยง

Bhsh

Fields

ยงheight: Ident
ยง

Burn

Fields

ยงsub_id: Ident
ยง

Call

Fields

ยงargs_addr: Ident
ยง

Cb

Fields

ยง

Ccp

Fields

ยงdst_addr: Ident
ยงcontract: Ident
ยงsrc_addr: Ident
ยง

Croo

Fields

ยงcontract: Ident
ยง

Csiz

Fields

ยงcontract: Ident
ยง

Bsiz

Fields

ยงcontract: Ident
ยง

Ldc

ยง

Bldd

Fields

ยงdst_ptr: Ident
ยงoffset: Ident
ยง

Log

Fields

ยง

Logd

ยง

Mint

Fields

ยงsub_id: Ident
ยง

Retd

ยง

Rvrt

Fields

ยง

Smo

ยง

Scwq

ยง

Srw

Fields

ยงis_set: Ident
ยงstate_addr: Ident
ยง

Srwq

Fields

ยงis_set: Ident
ยงstate_addr: Ident
ยง

Sww

Fields

ยงstate_addr: Ident
ยงis_set: Ident
ยง

Swwq

Fields

ยงstate_addr: Ident
ยงis_set: Ident
ยง

Time

Fields

ยงheight: Ident
ยง

Tr

Fields

ยงcontract: Ident
ยง

Tro

Fields

ยงoutput: Ident
ยง

Eck1

ยง

Ecr1

ยง

Ed19

ยง

K256

ยง

S256

ยง

Flag

Fields

ยง

Gm

ยง

Gtf

Fields

ยงtx_field_id: AsmImmediate
ยง

Blob

Implementationsยง

Trait Implementationsยง

Sourceยง

impl Clone for Instruction

Sourceยง

fn clone(&self) -> Instruction

Returns a copy of the value. Read more
1.0.0 ยท Sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Sourceยง

impl Debug for Instruction

Sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Sourceยง

impl Serialize for Instruction

Sourceยง

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Sourceยง

impl Spanned for Instruction

Sourceยง

fn span(&self) -> Span

Auto Trait Implementationsยง

Blanket Implementationsยง

Sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

Sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

Sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

Sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Sourceยง

impl<T> CloneToUninit for T
where T: Clone,

Sourceยง

unsafe fn clone_to_uninit(&self, dst: *mut u8)

๐Ÿ”ฌThis is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Sourceยง

impl<T> Conv for T

Sourceยง

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
Sourceยง

impl<T> FmtForward for T

Sourceยง

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
Sourceยง

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
Sourceยง

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
Sourceยง

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
Sourceยง

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
Sourceยง

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
Sourceยง

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
Sourceยง

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
Sourceยง

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
Sourceยง

impl<T> From<T> for T

Sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

Sourceยง

impl<T, U> Into<U> for T
where U: From<T>,

Sourceยง

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Sourceยง

impl<T> IntoEither for T

Sourceยง

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Sourceยง

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Sourceยง

impl<T> Pipe for T
where T: ?Sized,

Sourceยง

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
Sourceยง

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
Sourceยง

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
Sourceยง

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
Sourceยง

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
Sourceยง

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows self, then passes self.as_ref() into the pipe function.
Sourceยง

fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.as_mut() into the pipe function.
Sourceยง

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
Sourceยง

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R, ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
Sourceยง

impl<T> Same for T

Sourceยง

type Output = T

Should always be Self
Sourceยง

impl<T> StorageAsMut for T

Sourceยง

fn storage<Type>(&mut self) -> StorageMut<'_, Self, Type>
where Type: Mappable,

Sourceยง

fn storage_as_mut<Type>(&mut self) -> StorageMut<'_, Self, Type>
where Type: Mappable,

Sourceยง

impl<T> StorageAsRef for T

Sourceยง

fn storage<Type>(&self) -> StorageRef<'_, Self, Type>
where Type: Mappable,

Sourceยง

fn storage_as_ref<Type>(&self) -> StorageRef<'_, Self, Type>
where Type: Mappable,

Sourceยง

impl<T> Tap for T

Sourceยง

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
Sourceยง

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
Sourceยง

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
Sourceยง

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
Sourceยง

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
Sourceยง

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
Sourceยง

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
Sourceยง

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
Sourceยง

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
Sourceยง

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
Sourceยง

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .tap_borrow() only in debug builds, and is erased in release builds.
Sourceยง

fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds.
Sourceยง

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Calls .tap_ref() only in debug builds, and is erased in release builds.
Sourceยง

fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
Sourceยง

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
Sourceยง

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
Sourceยง

impl<T> ToOwned for T
where T: Clone,

Sourceยง

type Owned = T

The resulting type after obtaining ownership.
Sourceยง

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Sourceยง

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Sourceยง

impl<T> TryConv for T

Sourceยง

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
Sourceยง

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Sourceยง

type Error = Infallible

The type returned in the event of a conversion error.
Sourceยง

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Sourceยง

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Sourceยง

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Sourceยง

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Sourceยง

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Sourceยง

fn vzip(self) -> V