code: func (e *EnvironmentLoader) Load(s interface{}) error {
  	strct := structs.New(s)
  	strctMap := strct.Map()
  	prefix := e.getPrefix(strct)
  
  	for key, val := range strctMap {
  		field := strct.Field(key)
  
  		if err := e.processField(prefix, field, key, val); err != nil {
  			return err
  		}
  	}
  
  	return nil
  }
docs: // Load loads the source into the config defined by struct s