From 7c8ee2fa271749cc6be3721fb90bfb80711a2218 Mon Sep 17 00:00:00 2001 From: Benjamin Cane Date: Fri, 26 Jul 2024 09:42:04 -0700 Subject: [PATCH 1/2] Improving godocs with usage examples --- callbacks/router.go | 32 ++++++++++++++++++++++++++++++++ engine/wasm.go | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 69 insertions(+) diff --git a/callbacks/router.go b/callbacks/router.go index 46f689b..63ba895 100644 --- a/callbacks/router.go +++ b/callbacks/router.go @@ -12,6 +12,38 @@ When a host initiates the waPC engine, it can register a single function to hand The callbacks package provides a router that can be registered with the waPC engine. It enables routing host calls based on the Namespace, Capability, and Operation specified by the guest module. Hosts can extend many different capabilities to guest modules with the callback router. + +Usage: + + // Create a new router + router, err := New(RouterConfig{}) + if err != nil { + // do something + } + defer router.Close() + + // Register the callback with the router + err = router.RegisterCallback(CallbackConfig{ + Namespace: "example", + Capability: "greeting", + Operation: "hello", + Func: func(_ []byte) ([]byte, error) { + fmt.Println("Hello World!") + return []byte(""), nil + }, + }) + if err != nil { + // do something + } + + // Register router with waPC engine + engine, err = engine.New(engine.ServerConfig{ + Callback: router.Callback, + }) + if err != nil { + // do something + } + */ package callbacks diff --git a/engine/wasm.go b/engine/wasm.go index 849b738..5141e03 100644 --- a/engine/wasm.go +++ b/engine/wasm.go @@ -15,6 +15,43 @@ Use this package if you have a Go application and want to enable extended functi Examples of use cases could be stored procedures within a database, serverless functions, or language-agnostic plugins. + + +Usage: + + import ( + "github.com/tarmac-project/wapc-toolkit/engine" + ) + + func main() { + // Create a new engine server. + server, err := engine.New(ServerConfig{}) + if err != nil { + // do something + } + + // Load the guest module. + err = server.LoadModule(engine.ModuleConfig{ + Name: "my-guest-module", + Filepath: "./my-guest-module.wasm", + }) + if err != nil { + // do something + } + + // Lookup the guest module. + m, err := server.Module("my-guest-module") + if err != nil { + // do something + } + + // Call the Hello function within the guest module. + rsp, err := m.Run("Hello", []byte("world")) + if err != nil { + // do something + } + } + */ package engine From 4a6996df3d908c9864ebf495897f2595997cd914 Mon Sep 17 00:00:00 2001 From: Benjamin Cane Date: Fri, 26 Jul 2024 09:45:38 -0700 Subject: [PATCH 2/2] Go formatting --- callbacks/router.go | 1 - engine/wasm.go | 10 ++++------ 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/callbacks/router.go b/callbacks/router.go index 63ba895..243c1f2 100644 --- a/callbacks/router.go +++ b/callbacks/router.go @@ -43,7 +43,6 @@ Usage: if err != nil { // do something } - */ package callbacks diff --git a/engine/wasm.go b/engine/wasm.go index 5141e03..db6e0c4 100644 --- a/engine/wasm.go +++ b/engine/wasm.go @@ -16,20 +16,19 @@ Use this package if you have a Go application and want to enable extended functi Examples of use cases could be stored procedures within a database, serverless functions, or language-agnostic plugins. - Usage: import ( "github.com/tarmac-project/wapc-toolkit/engine" ) - + func main() { // Create a new engine server. server, err := engine.New(ServerConfig{}) if err != nil { // do something } - + // Load the guest module. err = server.LoadModule(engine.ModuleConfig{ Name: "my-guest-module", @@ -38,20 +37,19 @@ Usage: if err != nil { // do something } - + // Lookup the guest module. m, err := server.Module("my-guest-module") if err != nil { // do something } - + // Call the Hello function within the guest module. rsp, err := m.Run("Hello", []byte("world")) if err != nil { // do something } } - */ package engine