-module(gwr@syntax@types). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]). -export_type([number_type/0, vector_type/0, reference_type/0, value_type/0, function_type/0, limits/0, table_type/0, mutability/0, global_type/0, external_type/0]). -type number_type() :: integer32 | integer64 | float32 | float64. -type vector_type() :: vector128. -type reference_type() :: function_reference | extern_reference. -type value_type() :: {number, number_type()} | {vector, vector_type()} | {reference, reference_type()}. -type function_type() :: {function_type, list(value_type()), list(value_type())}. -type limits() :: {limits, integer(), gleam@option:option(integer())}. -type table_type() :: {table_type, limits(), reference_type()}. -type mutability() :: constant | variable. -type global_type() :: {global_type, mutability(), value_type()}. -type external_type() :: {function, function_type()} | {table, table_type()} | {memory, limits()} | {global, global_type()}.