// Code generated by ndpgen. DO NOT EDIT.//// This file contains client wrappers for the Meta host service.// It is intended for use in Navidrome plugins built with TinyGo.////go:build wasip1package ndhostimport ("encoding/json""errors""github.com/navidrome/navidrome/plugins/pdk/go/pdk")// meta_get is the host function provided by Navidrome.////go:wasmimport extism:host/user meta_getfunc meta_get(uint64) uint64// meta_set is the host function provided by Navidrome.////go:wasmimport extism:host/user meta_setfunc meta_set(uint64) uint64type metaGetRequest struct {Key string `json:"key"`}type metaGetResponse struct {Value any `json:"value,omitempty"`Error string `json:"error,omitempty"`}type metaSetRequest struct {Data map[string]any `json:"data"`}// MetaGet calls the meta_get host function.func MetaGet(key string) (any, error) {// Marshal request to JSONreq := metaGetRequest{Key: key,}reqBytes, err := json.Marshal(req)if err != nil {return nil, err}reqMem := pdk.AllocateBytes(reqBytes)defer reqMem.Free()// Call the host functionresponsePtr := meta_get(reqMem.Offset())// Read the response from memoryresponseMem := pdk.FindMemory(responsePtr)responseBytes := responseMem.ReadBytes()// Parse the responsevar response metaGetResponseif err := json.Unmarshal(responseBytes, &response); err != nil {return nil, err}// Convert Error field to Go errorif response.Error != "" {return nil, errors.New(response.Error)}return response.Value, nil}// MetaSet calls the meta_set host function.func MetaSet(data map[string]any) error {// Marshal request to JSONreq := metaSetRequest{Data: data,}reqBytes, err := json.Marshal(req)if err != nil {return err}reqMem := pdk.AllocateBytes(reqBytes)defer reqMem.Free()// Call the host functionresponsePtr := meta_set(reqMem.Offset())// Read the response from memoryresponseMem := pdk.FindMemory(responsePtr)responseBytes := responseMem.ReadBytes()// Parse error-only responsevar response struct {Error string `json:"error,omitempty"`}if err := json.Unmarshal(responseBytes, &response); err != nil {return err}if response.Error != "" {return errors.New(response.Error)}return nil}