defmodule QuickBEAM.WASM.Function do @moduledoc """ A decoded WebAssembly function. Contains the function's type signature, local variables, and decoded opcode stream. Opcodes use the same `{offset, name, ...operands}` tuple format as `QuickBEAM.Bytecode`. """ defstruct [ :index, :name, :type_idx, params: [], results: [], locals: [], opcodes: [] ] @type t :: %__MODULE__{ index: non_neg_integer(), name: String.t() | nil, type_idx: non_neg_integer(), params: [atom()], results: [atom()], locals: [atom()], opcodes: [tuple()] } end