Packages
orb
0.0.44
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/iterator.ex
defmodule Orb.Iterator do
# def fetch(%Orb.VariableReference{} = var, :valid?), do: {:ok, Orb.I32.le_u(var, ?z)}
# def fetch(%Orb.VariableReference{} = var, :value), do: {:ok, var}
# def fetch(%Orb.VariableReference{} = var, :next), do: {:ok, Orb.I32.add(var, 1)}
@type var_ref :: %Orb.VariableReference{}
@doc """
Calculates whether the iterator is done or not.
"""
@callback valid?(var_ref) :: %Orb.Instruction{} | integer()
@doc """
Extracts or calculates the current value.
"""
@callback value(var_ref) :: %Orb.Instruction{} | integer() | float()
@doc """
Mutates the iterator advancing it to the next element.
"""
@callback next(var_ref) :: %Orb.Instruction{} | integer() | float()
end