Kwasm.format.binary.type
package kwasm.format.binary.type
Fields
Name | Description |
---|---|
const FUNCTION_TYPE_MAGIC: Byte
|
Methods
readFunctionType
fun BinaryParser.readFunctionType(): FunctionType
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
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
|
From the docs:
Function types are encoded by the byte
0x60
followed by the respective vectors of parameter and result types.