code: func Decode(m interface{}, rawVal interface{}) error {
  	config := &DecoderConfig{
  		Metadata: nil,
  		Result:   rawVal,
  	}
  
  	decoder, err := NewDecoder(config)
  	if err != nil {
  		return err
  	}
  
  	return decoder.Decode(m)
  }
docs: // Decode takes a map and uses reflection to convert it into the
  // given Go native structure. val must be a pointer to a struct.