Documentation
¶
Index ¶
- Constants
- Variables
- type Argument
- type ArgumentType
- type Command
- func (c *Command) Call(req Request) Response
- func (c *Command) CheckArguments(req Request) error
- func (c *Command) Get(path []string) (*Command, error)
- func (c *Command) GetOptions(path []string) (map[string]Option, error)
- func (c *Command) Resolve(path []string) ([]*Command, error)
- func (c *Command) Subcommand(id string) *Command
- type Context
- type EncodingType
- type Error
- type ErrorType
- type Function
- type Marshaller
- type Option
- type OptionValue
- type Request
- type Response
Constants ¶
const ( Invalid = reflect.Invalid Bool = reflect.Bool Int = reflect.Int Uint = reflect.Uint Float = reflect.Float64 String = reflect.String )
Types of Command options
const ( EncShort = "enc" EncLong = "encoding" )
Flag names
const ( JSON = "json" XML = "xml" Text = "text" )
Supported EncodingType constants.
Variables ¶
var ErrNoFormatter = errors.New("This command cannot be formatted to plain text")
var ErrNotCallable = errors.New("This command can't be called directly. Try one of its subcommands.")
ErrNotCallable signals a command that cannot be called.
Functions ¶
This section is empty.
Types ¶
type Argument ¶
type Argument struct { Name string Type ArgumentType Required bool Variadic bool Description string }
type Command ¶
type Command struct { Description string Help string Options []Option Arguments []Argument Run Function Marshallers map[EncodingType]Marshaller Type interface{} Subcommands map[string]*Command }
Command is a runnable command, with input arguments and options (flags). It can also have Subcommands, to group units of work into sets.
func (*Command) CheckArguments ¶
func (*Command) GetOptions ¶
GetOptions gets the options in the given path of commands
func (*Command) Subcommand ¶
Subcommand returns the subcommand with the given id
type Function ¶
Function is the type of function that Commands use. It reads from the Request, and writes results to the Response.
type Marshaller ¶
Marshaller is a function that takes in a Response, and returns a marshalled []byte (or an error on failure)
type Option ¶
type Option struct { Names []string // a list of unique names to Type reflect.Kind // value must be this type Description string // a short string to describe this option }
Option is used to specify a field that will be provided by a consumer
func BoolOption ¶
func FloatOption ¶
func StringOption ¶
func UintOption ¶
type OptionValue ¶
type OptionValue struct {
// contains filtered or unexported fields
}
func (OptionValue) Bool ¶
func (ov OptionValue) Bool() (bool, error)
value accessor methods, gets the value as a certain type
func (OptionValue) Float ¶
func (ov OptionValue) Float() (float64, error)
func (OptionValue) Found ¶
func (ov OptionValue) Found() bool
Found returns true if the option value was provided by the user (not a default value)
func (OptionValue) Int ¶
func (ov OptionValue) Int() (int, error)
func (OptionValue) String ¶
func (ov OptionValue) String() (string, error)
func (OptionValue) Uint ¶
func (ov OptionValue) Uint() (uint, error)
type Request ¶
type Request interface { Path() []string Option(name string) *OptionValue Options() optMap SetOption(name string, val interface{}) Arguments() []interface{} // TODO: make argument value type instead of using interface{} Context() *Context SetContext(Context) Command() *Command ConvertOptions() error }
Request represents a call to a command from a consumer
type Response ¶
type Response interface { Request() Request // Set/Return the response Error SetError(err error, code ErrorType) Error() *Error // Sets/Returns the response value SetOutput(interface{}) Output() interface{} // Marshal marshals out the response into a buffer. It uses the EncodingType // on the Request to chose a Marshaller (Codec). Marshal() ([]byte, error) // Gets a io.Reader that reads the marshalled output Reader() (io.Reader, error) }
Response is the result of a command request. Handlers write to the response, setting Error or Value. Response is returned to the client.
func NewResponse ¶
NewResponse returns a response to match given Request