Albirew/nyaa-pantsu
Archivé
1
0
Bifurcation 0
Ce dépôt a été archivé le 2022-05-07. Vous pouvez voir ses fichiers ou le cloner, mais pas ouvrir de ticket ou de demandes d'ajout, ni soumettre de changements.
nyaa-pantsu/vendor/github.com/anacrolix/missinggo/resource/resource.go
akuma06 a41f938cec Add Godep support (#758)
As we have seen, dependencies version can prevent the build. We should
user lock versions on dependencies that we know work:
* Packages are vendored
* Add Godep support
* Added addtional install step in readme
* Fix travis build error
2017-05-26 13:07:22 +02:00

46 lignes
867 o
Go

package resource
import (
"io"
"os"
)
// An Instance represents the content at some location accessed through some
// Provider. It's the data at some URL.
type Instance interface {
Get() (io.ReadCloser, error)
Put(io.Reader) error
Stat() (os.FileInfo, error)
ReadAt([]byte, int64) (int, error)
WriteAt([]byte, int64) (int, error)
Delete() error
}
// Creates a io.ReadSeeker to an Instance.
func ReadSeeker(r Instance) io.ReadSeeker {
fi, err := r.Stat()
if err != nil {
return nil
}
return io.NewSectionReader(r, 0, fi.Size())
}
// Move instance content, deleting the source if it succeeds.
func Move(from, to Instance) (err error) {
rc, err := from.Get()
if err != nil {
return
}
defer rc.Close()
err = to.Put(rc)
if err != nil {
return
}
from.Delete()
return
}
func Exists(i Instance) bool {
_, err := i.Stat()
return err == nil
}