code: func (d *driver) List(ctx context.Context, subPath string) ([]string, error) {
  	fullPath := d.fullPath(subPath)
  
  	dir, err := os.Open(fullPath)
  	if err != nil {
  		if os.IsNotExist(err) {
  			return nil, storagedriver.PathNotFoundError{Path: subPath}
  		}
  		return nil, err
  	}
  
  	defer dir.Close()
  
  	fileNames, err := dir.Readdirnames(0)
  	if err != nil {
  		return nil, err
  	}
  
  	keys := make([]string, 0, len(fileNames))
  	for _, fileName := range fileNames {
  		keys = append(keys, path.Join(subPath, fileName))
  	}
  
  	return keys, nil
  }
docs: // List returns a list of the objects that are direct descendants of the given
  // path.