diff --git a/file.go b/file.go index e416650..d975f11 100644 --- a/file.go +++ b/file.go @@ -88,7 +88,7 @@ type Directory interface { // Note: // - Some implementations of this functions may define some constraints in how // it can be used - Entries() (DirIterator, error) + Entries() DirIterator } // FileInfo exposes information on files in local filesystem diff --git a/file_test.go b/file_test.go index 8fa2a87..81bcabe 100644 --- a/file_test.go +++ b/file_test.go @@ -17,10 +17,7 @@ func TestSliceFiles(t *testing.T) { buf := make([]byte, 20) sf := NewSliceFile(files) - it, err := sf.Entries() - if err != nil { - t.Fatal(err) - } + it := sf.Entries() if !it.Next() { t.Fatal("Expected a file") diff --git a/multifilereader.go b/multifilereader.go index f5f35b4..52d9f4c 100644 --- a/multifilereader.go +++ b/multifilereader.go @@ -35,10 +35,7 @@ type MultiFileReader struct { // If `form` is set to true, the multipart data will have a Content-Type of 'multipart/form-data', // if `form` is false, the Content-Type will be 'multipart/mixed'. func NewMultiFileReader(file Directory, form bool) (*MultiFileReader, error) { - it, err := file.Entries() - if err != nil { - return nil, err - } + it := file.Entries() mfr := &MultiFileReader{ files: []DirIterator{it}, @@ -72,13 +69,13 @@ func (mfr *MultiFileReader) Read(buf []byte) (written int, err error) { } if !mfr.files[len(mfr.files)-1].Next() { + if mfr.files[len(mfr.files)-1].Err() != nil { + return 0, err + } mfr.files = mfr.files[:len(mfr.files)-1] mfr.path = mfr.path[:len(mfr.path)-1] continue } - if mfr.files[len(mfr.files)-1].Err() != nil { - return 0, mfr.files[len(mfr.files)-1].Err() - } entry = mfr.files[len(mfr.files)-1] } @@ -99,11 +96,7 @@ func (mfr *MultiFileReader) Read(buf []byte) (written int, err error) { case *Symlink: contentType = "application/symlink" case Directory: - newIt, err := f.Entries() - if err != nil { - return 0, err - } - + newIt := f.Entries() mfr.files = append(mfr.files, newIt) mfr.path = append(mfr.path, entry.Name()) contentType = "application/x-directory" diff --git a/multifilereader_test.go b/multifilereader_test.go index a3cf1ee..8df39a8 100644 --- a/multifilereader_test.go +++ b/multifilereader_test.go @@ -41,10 +41,7 @@ func TestMultiFileReaderToMultiFile(t *testing.T) { if !ok { t.Fatal("Expected a directory") } - it, err := md.Entries() - if err != nil { - t.Fatal(err) - } + it := md.Entries() if !it.Next() || it.Name() != "file.txt" { t.Fatal("iterator didn't work as expected") @@ -54,10 +51,7 @@ func TestMultiFileReaderToMultiFile(t *testing.T) { t.Fatal("iterator didn't work as expected") } - subIt, err := it.Dir().Entries() - if err != nil { - t.Fatal(err) - } + subIt := it.Dir().Entries() if !subIt.Next() || subIt.Name() != "a.txt" || subIt.Dir() != nil { t.Fatal("iterator didn't work as expected") @@ -154,7 +148,7 @@ func TestOutput(t *testing.T) { t.Fatal("Expected filename to be \"b.txt\"") } - it, err := mpd.Entries() + it := mpd.Entries() if it.Next() { t.Fatal("Expected to get false") } diff --git a/multipartfile.go b/multipartfile.go index fc5610b..18bf12c 100644 --- a/multipartfile.go +++ b/multipartfile.go @@ -154,8 +154,8 @@ func (it *multipartIterator) Err() error { panic("implement me") } -func (f *MultipartFile) Entries() (DirIterator, error) { - return &multipartIterator{f: f}, nil +func (f *MultipartFile) Entries() DirIterator { + return &multipartIterator{f: f} } func (f *MultipartFile) fileName() string { diff --git a/serialfile.go b/serialfile.go index f4e62b5..e379574 100644 --- a/serialfile.go +++ b/serialfile.go @@ -113,12 +113,12 @@ func (it *serialIterator) Err() error { return it.err } -func (f *serialFile) Entries() (DirIterator, error) { +func (f *serialFile) Entries() DirIterator { return &serialIterator{ path: f.path, files: f.files, handleHiddenFiles: f.handleHiddenFiles, - }, nil + } } func (f *serialFile) NextFile() (string, Node, error) { diff --git a/slicefile.go b/slicefile.go index 6400d47..82ce223 100644 --- a/slicefile.go +++ b/slicefile.go @@ -69,8 +69,8 @@ func NewSliceFile(files []DirEntry) Directory { return &SliceFile{files} } -func (f *SliceFile) Entries() (DirIterator, error) { - return &sliceIterator{files: f.files, n: -1}, nil +func (f *SliceFile) Entries() DirIterator { + return &sliceIterator{files: f.files, n: -1} } func (f *SliceFile) Close() error {