code: func Decode(input interface{}, output interface{}) error {
  	config := &DecoderConfig{
  		Metadata: nil,
  		Result:   output,
  	}
  
  	decoder, err := NewDecoder(config)
  	if err != nil {
  		return err
  	}
  
  	return decoder.Decode(input)
  }
docs: // Decode takes an input structure and uses reflection to translate it to
  // the output structure. output must be a pointer to a map or struct.