Packages
orb
0.0.31
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/to_wat.ex
defprotocol Orb.ToWat do
@doc "Protocol for converting to WebAssembly text format (Wat)"
def to_wat(data, indent)
end
# TODO: remove this.
# A lot of the instruction are implemented as tuples.
# They might all become structs in the future, which means this could be removed.
defimpl Orb.ToWat, for: Tuple do
def to_wat(tuple, indent) do
Orb.ToWat.Instructions.do_wat(tuple, indent)
end
end
defmodule Orb.ToWat.Helpers do
alias Orb.CustomType
def do_type(type) do
case type do
:i64 ->
"i64"
:i32 ->
"i32"
:f64 ->
"f64"
:f32 ->
"f32"
# e.g. {I32, I32}
tuple when is_tuple(tuple) ->
tuple |> Tuple.to_list() |> Enum.map(&do_type/1) |> Enum.join(" ")
type ->
CustomType.resolve!(type) |> to_string()
end
end
end