macro_rules! map_wasm_operators {
(@basic $ty:tt, $wasm:tt, $evm:tt $($arg:ident: $argty:ty),*) => { ... };
(@integer32 $wasm:tt, $evm:tt $($arg:ident: $argty:ty),*) => { ... };
(@integer64 $wasm:tt, $evm:tt $($arg:ident: $argty:ty),*) => { ... };
(@integer $wasm:tt, $evm:tt $($arg:ident: $argty:ty),*) => { ... };
(@xdr $wasm:tt, $evm:tt $($arg:ident: $argty:ty),*) => { ... };
(@float32 $wasm:tt, $evm:tt $($arg:ident: $argty:ty),*) => { ... };
(@float64 $wasm:tt, $evm:tt $($arg:ident: $argty:ty),*) => { ... };
(@float $wasm:tt, $evm:tt $($arg:ident: $argty:ty),*) => { ... };
(@integer_and_float $op:tt $($arg:ident: $argty:ty),*) => { ... };
(@field ($($field:ident).*) ($op:tt -> $evm:tt) $($arg:tt: $argty:ty),* ) => { ... };
(
all: [$($all:tt),+],
xdr: [$($xdr:tt),+],
integer: [$($integer:tt),+],
integer_and_float: [$($op:tt),+],
float: [$($float:tt),+],
map: {
integer: [$($map_int_wasm:tt => $map_int_evm:tt),+],
},
mem: {
all: [$($mem:tt),+],
integer: [$($mem_integer:tt),+],
integer64: [$($mem_integer64:tt),+],
signed: [$($mem_signed:tt),+],
signed64: [$($mem_signed64:tt),+],
signed_and_float: [$($mem_signed_and_float:tt),+],
},
masm: {
$( $masm:tt $(: { $($marg:ident: $margty:ty),+ })? ),+
},
global: {
$( $global:tt $(: { $($garg:ident: $gargty:ty),+ })? ),+
}
) => { ... };
}
Expand description
Implement arithmetic operators for types.