code: func (iter *FileIter) Next() (*File, error) {
  	for {
  		name, entry, err := iter.w.Next()
  		if err != nil {
  			return nil, err
  		}
  
  		if entry.Mode == filemode.Dir || entry.Mode == filemode.Submodule {
  			continue
  		}
  
  		blob, err := GetBlob(iter.s, entry.Hash)
  		if err != nil {
  			return nil, err
  		}
  
  		return NewFile(name, entry.Mode, blob), nil
  	}
  }
docs: // Next moves the iterator to the next file and returns a pointer to it. If
  // there are no more files, it returns io.EOF.