Get rid of Export(). Fix golint warnings

This commit is contained in:
Marc Vertes
2018-12-11 03:38:51 -08:00
parent 6a23877ce2
commit 480ef53daf
6 changed files with 11 additions and 41 deletions

View File

@@ -7,21 +7,25 @@ import (
var version = "v1"
// Sample stores middleware metadata
type Sample struct{ Name string }
// Handler processes requests
func (s *Sample) Handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintln(w, "Welcome to my website", s.Name, version)
}
// Handler2 processes requests
func Handler2(w http.ResponseWriter, r *http.Request) {
fmt.Fprintln(w, "Welcome to my website", version)
}
// NewSample returns a new sample handler function
func NewSample(name string) func(http.ResponseWriter, *http.Request) {
fmt.Println("in NewSample", name, version)
s := &Sample{"test"}
return s.Handler
//return Handler2
fmt.Println("in NewSample", name, version, s)
//return s.Handler
return Handler2
//return func(w http.ResponseWriter, r *http.Request) { return Handler2(w, r) }
//return func(w http.ResponseWriter, r *http.Request) { return s.Handler(w, r) }
}

View File

@@ -10,9 +10,8 @@ import (
// Plugin struct stores metadata for external modules
type Plugin struct {
Pkgname, Typename string
Id int
handler func(http.ResponseWriter, *http.Request)
name string
handler func(http.ResponseWriter, *http.Request)
}
// Handler redirect http.Handler processing in the interpreter
@@ -33,7 +32,7 @@ func main() {
handler, err := i.Eval(`plugin.NewSample("test")`)
log.Println("handler:", handler, "err:", err)
p := &Plugin{"sample", "Middleware", 0, nil}
p := &Plugin{"sample", nil}
p.handler = handler.Interface().(func(http.ResponseWriter, *http.Request))
http.HandleFunc("/", p.Handler)
http.ListenAndServe(":8080", nil)

Binary file not shown.

View File

@@ -1,16 +0,0 @@
package interp
func Example_export() {
src := `package tst
func Exported() { println("Hello from Exported") }
`
i := NewInterpreter(Opt{}, "export_test")
i.Eval(src)
f := i.Export("tst", "Exported").Interface().(func())
f()
// Output:
// Hello from Exported
}

View File

@@ -1,7 +1,6 @@
package interp
import (
"log"
"reflect"
)
@@ -202,23 +201,6 @@ func (i *Interpreter) Eval(src string) (reflect.Value, error) {
return res, err
}
// Export returns a value defined in the interpreter during execution
// for use in the runtime
func (i *Interpreter) Export(pkg, name string) reflect.Value {
sym := i.scope[pkg].sym[name]
var res reflect.Value
if sym == nil {
return res
}
switch sym.kind {
case Func:
log.Println("Export func", pkg+"."+name, sym.node.index)
wrapper := genNodeWrapper(sym.node)
res = wrapper(i.Frame)
}
return res
}
// Import loads binary runtime symbols in the interpreter context so
// they can be used in interpreted code
func (i *Interpreter) Import(values LibValueMap, types LibTypeMap) {

View File

@@ -2,6 +2,7 @@ package provider2
import "fmt"
// Sample is a dummy test function
func Sample() {
fmt.Println("Hello from Provider2")
}