Hi,
Assume I have a plugin:
package main
func Add(x, y int) int {
return x + y
}
func main() {}
I'd like to make sure that plugin functions are from certain type. So I
wrote (ignore panics, they are for brevity):
Enter code here...package main
import (
"fmt"
"plugin"
)
type MathFunc func(int, int) int
func main() {
p, err := plugin.Open("./plugin.so")
if err != nil {
panic(err)
}
sym, err := p.Lookup("Add")
if err != nil {
panic(err)
}
// fn := sym.(MathFunc)
fn := sym.(func(int, int) int)
fmt.Println(fn(1, 2))
}
The commented out line causes a panic.
The other way I see is to expose MathFunc to plugins but then plugin
writers will have to write something like:
var Add = MathFunc(func(x, y int) int {
return x + y
})
Which is ugly :)
Any way around this? (I saw that http.HandleFunc gets the function
signature like I do now - so I guess this is the best way, but worth
checking).
--
You received this message because you are subscribed to the Google Groups
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.