Packages
orb
0.0.27
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/mut_ref.ex
defmodule Orb.MutRef do
@moduledoc """
Use `Orb.DSL.mut!/1` to get a mutable reference to a global or local.
"""
defstruct [:read, :write, :type]
def from(%Orb.VariableReference{} = read) do
%__MODULE__{read: read, write: Orb.VariableReference.as_set(read), type: read.type}
end
def from({:global_get, name} = read) do
%__MODULE__{read: read, write: {:global_set, name}}
end
def from({:local_get, name} = read) do
%__MODULE__{read: read, write: {:local_set, name}}
end
def store(%__MODULE__{write: write}, value) do
[value, write]
end
end