Commit 0149f65c authored by Matt Bell's avatar Matt Bell Committed by Juan Batiz-Benet

commands: Replaced 'Formatter' with 'Marshaller'

parent 068e10cc
......@@ -15,10 +15,9 @@ var log = u.Logger("command")
// It reads from the Request, and writes results to the Response.
type Function func(Response, Request)
// Formatter is a function that takes in a Response, and returns a human-readable string
// Marshaller is a function that takes in a Response, and returns a marshalled []byte
// (or an error on failure)
// MAYBE_TODO: maybe this should be a io.Reader instead of a string?
type Formatter func(Response) (string, error)
type Marshaller func(Response) ([]byte, error)
// TODO: check Argument definitions when creating a Command
// (might need to use a Command constructor)
......@@ -33,7 +32,7 @@ type Command struct {
Options []Option
Arguments []Argument
Run Function
Format Formatter
Format Marshaller
Type interface{}
Subcommands map[string]*Command
}
......
......@@ -40,10 +40,6 @@ const (
// TODO: support more encoding types
)
// Marshaller is a function used by coding types.
// TODO this should just be a `coding.Codec`
type Marshaller func(res Response) ([]byte, error)
var marshallers = map[EncodingType]Marshaller{
JSON: func(res Response) ([]byte, error) {
if res.Error() != nil {
......@@ -63,11 +59,11 @@ var marshallers = map[EncodingType]Marshaller{
return nil, ErrNoFormatter
}
s, err := format(res)
bytes, err := format(res)
if err != nil {
return nil, err
}
return []byte(s), nil
return bytes, nil
},
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment