gitlab.com/Raven-IO/raven-delve@v1.22.4/_fixtures/plugintest2.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "gitlab.com/Raven-IO/raven-delve/_fixtures/internal/pluginsupport" 6 "os" 7 "plugin" 8 ) 9 10 type asomething struct { 11 n int 12 } 13 14 func (a *asomething) Callback(n int) int { 15 return a.n + n 16 } 17 18 func (a *asomething) String() string { 19 return "success" 20 } 21 22 var ExeGlobal = &asomething{2} 23 24 func must(err error) { 25 if err != nil { 26 panic(err) 27 } 28 } 29 30 func main() { 31 plug1, err := plugin.Open(os.Args[1]) 32 must(err) 33 plug2, err := plugin.Open(os.Args[2]) 34 must(err) 35 fn1iface, err := plug1.Lookup("HelloFn") 36 must(err) 37 fn2iface, err := plug2.Lookup("TypesTest") 38 must(err) 39 fn1 := fn1iface.(func(int) string) 40 fn2 := fn2iface.(func(pluginsupport.Something) pluginsupport.SomethingElse) 41 a := fn1(3) 42 b := fn2(&asomething{2}) 43 fmt.Println(a, b, ExeGlobal) 44 }