code: func NewDiskStorer(folderPath string, maxAge, cleanInterval time.Duration) (*DiskStorer, error) {
  	if (maxAge != 0 && cleanInterval == 0) || (cleanInterval != 0 && maxAge == 0) {
  		panic("if max age or clean interval is set, the other must also be set")
  	}
  
  	d := &DiskStorer{
  		folderPath:    folderPath,
  		maxAge:        maxAge,
  		cleanInterval: cleanInterval,
  	}
  
  	// Create the storage folder if it does not exist
  	_, err := os.Stat(folderPath)
  	if os.IsNotExist(err) {
  		err := os.Mkdir(folderPath, os.FileMode(int(0755)))
  		if err != nil {
  			return nil, errors.Wrapf(err, "unable to make directory: %s", folderPath)
  		}
  	}
  
  	return d, nil
  }
docs: // NewDiskStorer initializes and returns a new DiskStorer object.
  // It takes the maxAge of how long each session should live on disk,
  // and a cleanInterval duration which defines how often the clean
  // task should check for maxAge expired sessions to be removed from disk.
  // Persistent storage can be attained by setting maxAge and cleanInterval
  // to zero.