aboutsummaryrefslogtreecommitdiff
path: root/widget/api/handle.go
diff options
context:
space:
mode:
Diffstat (limited to 'widget/api/handle.go')
-rw-r--r--widget/api/handle.go15
1 files changed, 14 insertions, 1 deletions
diff --git a/widget/api/handle.go b/widget/api/handle.go
index e04d3d2..fed2142 100644
--- a/widget/api/handle.go
+++ b/widget/api/handle.go
@@ -8,16 +8,27 @@ import (
type Widget struct {
Hello
+ Credits
Writer io.Writer
}
-func NewWidget(name, id string) *Widget {
+type MethodResponder interface {
+ Respond(io.Writer, ...string) error
+}
+
+type Method string
+
+func NewWidget(name, id string, author, homepage string) *Widget {
return &Widget{
Hello: Hello{
Name: name,
ID: id,
Version: 1,
},
+ Credits: Credits{
+ Author: author,
+ Homepage: homepage,
+ },
Writer: os.Stdout,
}
}
@@ -29,6 +40,8 @@ func (w *Widget) Handle() error {
switch Method(os.Args[1]) {
case MethodHello:
return w.Hello.Respond(w.Writer)
+ case MethodCredits:
+ return w.Credits.Respond(w.Writer)
}
return fmt.Errorf("unknown method: %s", os.Args[1])
}