Packages
orb
0.0.10
0.2.2
0.2.1
0.2.0
0.1.1
0.1.0
0.0.51
0.0.49
0.0.48
0.0.47
0.0.46
0.0.45
0.0.44
0.0.43
0.0.42
0.0.41
0.0.40
0.0.39
0.0.38
0.0.37
0.0.36
0.0.35
0.0.34
0.0.33
0.0.32
0.0.31
0.0.30
0.0.28
0.0.27
0.0.26
0.0.25
0.0.24
0.0.23
0.0.22
0.0.21
0.0.20
0.0.19
0.0.18
0.0.17
0.0.16
0.0.15
0.0.14
0.0.13
0.0.12
retired
0.0.11
0.0.10
0.0.9
0.0.8
0.0.7
0.0.6
0.0.5
0.0.4
0.0.3
0.0.2
0.0.1
DSL for WebAssembly
Current section
Files
Jump to
Current section
Files
lib/orb/i32/dsl.ex
defmodule Orb.I32.DSL do
@moduledoc """
The operators that work consistently signed or unsigned.
Signed specific: `Orb.S32.DSL`
Unsigned specific: `Orb.U32.DSL`
"""
import Kernel, except: [+: 2, -: 2, *: 2, ===: 2, !==: 2, not: 1, or: 2]
def left + right do
Orb.Numeric.Add.optimized(Orb.I32, left, right)
end
def left - right do
Orb.Numeric.Subtract.optimized(Orb.I32, left, right)
end
def left * right do
Orb.Numeric.Multiply.optimized(Orb.I32, left, right)
# Orb.I32.mul(left, right)
end
def left === right do
Orb.I32.eq(left, right)
end
def left !== right do
Orb.Numeric.NotEqual.optimized(Orb.I32, left, right)
end
def left ||| right do
Orb.I32.or(left, right)
end
def left &&& right do
Orb.I32.band(left, right)
end
def left <<< right do
Orb.I32.shl(left, right)
end
def not value do
Orb.I32.eqz(value)
end
def left or right do
Orb.I32.or(left, right)
end
end