defmodule WaspVM.Decoder.CustomSectionParser do alias WaspVM.Decoder.NameSectionParser alias WaspVM.LEB128 @moduledoc false def parse(section) do {name_len, rest} = LEB128.decode_unsigned(section) <> = rest section = parse_section(name, rest) custom = Map.new([{String.to_atom(name), section}]) {:custom, custom} end def parse_section("name", binary), do: NameSectionParser.parse(binary) def parse_section(name, _), do: raise "Parser for custom section #{name} not implemented" end