mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-10-31 16:02:26 -05:00 
			
		
		
		
	This allows for building GoToSocial with [SQLite transpiled to WASM](https://github.com/ncruces/go-sqlite3) and accessed through [Wazero](https://wazero.io/).
		
			
				
	
	
		
			55 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package wasm
 | |
| 
 | |
| import (
 | |
| 	"github.com/tetratelabs/wazero/api"
 | |
| 	"github.com/tetratelabs/wazero/internal/internalapi"
 | |
| )
 | |
| 
 | |
| // constantGlobal wraps GlobalInstance to implement api.Global.
 | |
| type constantGlobal struct {
 | |
| 	internalapi.WazeroOnlyType
 | |
| 	g *GlobalInstance
 | |
| }
 | |
| 
 | |
| // Type implements api.Global.
 | |
| func (g constantGlobal) Type() api.ValueType {
 | |
| 	return g.g.Type.ValType
 | |
| }
 | |
| 
 | |
| // Get implements api.Global.
 | |
| func (g constantGlobal) Get() uint64 {
 | |
| 	ret, _ := g.g.Value()
 | |
| 	return ret
 | |
| }
 | |
| 
 | |
| // String implements api.Global.
 | |
| func (g constantGlobal) String() string {
 | |
| 	return g.g.String()
 | |
| }
 | |
| 
 | |
| // mutableGlobal extends constantGlobal to allow updates.
 | |
| type mutableGlobal struct {
 | |
| 	internalapi.WazeroOnlyType
 | |
| 	g *GlobalInstance
 | |
| }
 | |
| 
 | |
| // Type implements api.Global.
 | |
| func (g mutableGlobal) Type() api.ValueType {
 | |
| 	return g.g.Type.ValType
 | |
| }
 | |
| 
 | |
| // Get implements api.Global.
 | |
| func (g mutableGlobal) Get() uint64 {
 | |
| 	ret, _ := g.g.Value()
 | |
| 	return ret
 | |
| }
 | |
| 
 | |
| // String implements api.Global.
 | |
| func (g mutableGlobal) String() string {
 | |
| 	return g.g.String()
 | |
| }
 | |
| 
 | |
| // Set implements the same method as documented on api.MutableGlobal.
 | |
| func (g mutableGlobal) Set(v uint64) {
 | |
| 	g.g.SetValue(v, 0)
 | |
| }
 |