kwasm.format.binary.type

Kwasm.format.binary.type

package kwasm.format.binary.type

Fields

Name Description
const FUNCTION_TYPE_MAGIC: Byte

Methods

readFunctionType

fun BinaryParser.readFunctionType(): FunctionType

From the docs:

Function types are encoded by the byte 0x60 followed by the respective vectors of parameter and result types.


functype    ::= 0x60 rt1:resulttype rt2:resulttype  =>  rt1 → rt2

Receiver

Name Description
BinaryParser

ReturnValue

Name Description
FunctionType

readGlobalType

fun BinaryParser.readGlobalType(): GlobalType

From the docs:

Global types are encoded by their value type and a flag for their mutability.


globaltype  ::= t:valtype m:mut => m
tmut        ::= 0x00            => const
0x01            => var

Receiver

Name Description
BinaryParser

ReturnValue

Name Description
GlobalType

readLimits

fun BinaryParser.readLimits(): Limits

From the docs:

Limits are encoded with a preceding flag indicating whether a maximum is present.


limits  ::=     0x00 n:u32          => {min n, max ϵ}
0x01 n:u32 m:u32    => {min n, max m}

Receiver

Name Description
BinaryParser

ReturnValue

Name Description
Limits

readMemoryType

fun BinaryParser.readMemoryType(): MemoryType

From the docs:

Memory types are encoded with their limits.


memtype ::=     lim:limits  =>  lim

Receiver

Name Description
BinaryParser

ReturnValue

Name Description
MemoryType

readResultType

fun BinaryParser.readResultType(): ResultType

From the docs:

Result types are encoded by the respective vectors of value types `.


resulttype   ::= t*:vec(valtype) =>  [t*]

Receiver

Name Description
BinaryParser

ReturnValue

Name Description
ResultType

readTableType

fun BinaryParser.readTableType(): TableType

From the docs:

Table types are encoded with their limits and a constant byte indicating their element type.


tabletype   ::=     et:elemtype lim:limits  => lim et
elemtype    ::=     0x70                    => funcref

Receiver

Name Description
BinaryParser

ReturnValue

Name Description
TableType

readValueType

fun BinaryParser.readValueType(): ValueType

From the docs:

Value types are encoded by a single byte.


valtype ::= 0x7F    =>  i32
0x7E    =>  i64
0x7D    =>  f32
0x7C    =>  f64

Note

Value types can occur in contexts where type indices are also allowed, such as in the case of block types. Thus, the binary format for types corresponds to the signed LEB128 encoding of small negative sN values, so that they can coexist with (positive) type indices in the future.

Receiver

Name Description
BinaryParser

ReturnValue

Name Description
ValueType