diff --git a/commands/command.go b/commands/command.go index 2ecb6ee29eb68cf001f066a9bfa660e122e59902..17487b7e1d04630cd31d679c9b3f5a9debe976d4 100644 --- a/commands/command.go +++ b/commands/command.go @@ -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 } diff --git a/commands/response.go b/commands/response.go index f703299e8d870b5b77063afea06dabc91de34404..8cc724f3d10846360d8f002b6896ea4245439f56 100644 --- a/commands/response.go +++ b/commands/response.go @@ -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 }, }