func()

in pkg/converter/decoder.go [102:126]


func (m *Decoder) decode(f interface{}) error {
	var err error
	switch m.format {
	case YAML:
		var mod yaml.JSONOpt = func(d *json.Decoder) *json.Decoder {
			if !m.allowUnknownFields {
				d.DisallowUnknownFields()
			}
			return d
		}
		err = yaml.Unmarshal(m.data, f, mod)
	case JSON:
		jsonDecoder := json.NewDecoder(bytes.NewReader(m.data))
		if !m.allowUnknownFields {
			jsonDecoder.DisallowUnknownFields()
		}
		err = jsonDecoder.Decode(f)
	default:
		err = fmt.Errorf("unknown content type: %q", m.format)
	}
	if err != nil && m.fname != "" {
		return fmt.Errorf("while decoding contents from file %v, %v", m.fname, err)
	}
	return err
}