package binary
import (
"bytes"
"fmt"
"github.com/tetratelabs/wazero/api"
"github.com/tetratelabs/wazero/internal/wasm"
)
func decodeGlobal(r *bytes .Reader , enabledFeatures api .CoreFeatures , ret *wasm .Global ) (err error ) {
ret .Type , err = decodeGlobalType (r )
if err != nil {
return err
}
err = decodeConstantExpression (r , enabledFeatures , &ret .Init )
return
}
func decodeGlobalType(r *bytes .Reader ) (wasm .GlobalType , error ) {
vt , err := decodeValueTypes (r , 1 )
if err != nil {
return wasm .GlobalType {}, fmt .Errorf ("read value type: %w" , err )
}
ret := wasm .GlobalType {
ValType : vt [0 ],
}
b , err := r .ReadByte ()
if err != nil {
return wasm .GlobalType {}, fmt .Errorf ("read mutablity: %w" , err )
}
switch mut := b ; mut {
case 0x00 :
case 0x01 :
ret .Mutable = true
default :
return wasm .GlobalType {}, fmt .Errorf ("%w for mutability: %#x != 0x00 or 0x01" , ErrInvalidByte , mut )
}
return ret , nil
}
The pages are generated with Golds v0.8.2 . (GOOS=linux GOARCH=amd64)
Golds is a Go 101 project developed by Tapir Liu .
PR and bug reports are welcome and can be submitted to the issue list .
Please follow @zigo_101 (reachable from the left QR code) to get the latest news of Golds .