github.com/bananabytelabs/wazero@v0.0.0-20240105073314-54b22a776da8/config_example_test.go (about) 1 package wazero_test 2 3 import ( 4 "context" 5 _ "embed" 6 "log" 7 8 "github.com/bananabytelabs/wazero" 9 "github.com/bananabytelabs/wazero/api" 10 ) 11 12 // This is a basic example of retrieving custom sections using RuntimeConfig.WithCustomSections. 13 func Example_runtimeConfig_WithCustomSections() { 14 ctx := context.Background() 15 config := wazero.NewRuntimeConfig().WithCustomSections(true) 16 17 r := wazero.NewRuntimeWithConfig(ctx, config) 18 defer r.Close(ctx) 19 20 m, err := r.CompileModule(ctx, addWasm) 21 if err != nil { 22 log.Panicln(err) 23 } 24 25 if m.CustomSections() == nil { 26 log.Panicln("Custom sections should not be nil") 27 } 28 29 mustContain(m.CustomSections(), "producers") 30 mustContain(m.CustomSections(), "target_features") 31 32 // Output: 33 // 34 } 35 36 func mustContain(ss []api.CustomSection, name string) { 37 for _, s := range ss { 38 if s.Name() == name { 39 return 40 } 41 } 42 log.Panicf("Could not find section named %s\n", name) 43 }