torrent/data.go

18 lines
462 B
Go

package torrent
import "io"
// Represents data storage for a Torrent.
type Data interface {
io.ReaderAt
io.WriterAt
// Bro, do you even io.Closer?
Close()
// If the data isn't available, err should be io.ErrUnexpectedEOF.
WriteSectionTo(w io.Writer, off, n int64) (written int64, err error)
// We believe the piece data will pass a hash check.
PieceCompleted(index int) error
// Returns true if the piece is complete.
PieceComplete(index int) bool
}