code: func (d *Decoder) Decode(config *Config) error {
  	cb := func(s string, ss string, k string, v string, bv bool) error {
  		if ss == "" && k == "" {
  			config.Section(s)
  			return nil
  		}
  
  		if ss != "" && k == "" {
  			config.Section(s).Subsection(ss)
  			return nil
  		}
  
  		config.AddOption(s, ss, k, v)
  		return nil
  	}
  	return gcfg.ReadWithCallback(d, cb)
  }
docs: // Decode reads the whole config from its input and stores it in the
  // value pointed to by config.