import (
"crypto/sha256"
+
"github.com/RoaringBitmap/roaring"
g "github.com/anacrolix/generics"
"github.com/anacrolix/missinggo/v2/bitmap"
length int64
fi metainfo.FileInfo
displayPath string
- prio piecePriority
+ prio PiecePriority
piecesRoot g.Option[[sha256.Size]byte]
}
}
func (f *File) bytesLeft() (left int64) {
- return fileBytesLeft(int64(f.t.usualPieceSize()), f.BeginPieceIndex(), f.EndPieceIndex(), f.offset, f.length, &f.t._completedPieces, func(pieceIndex int) int64 {
- return int64(f.t.piece(pieceIndex).numDirtyBytes())
- })
+ return fileBytesLeft(
+ int64(f.t.usualPieceSize()),
+ f.BeginPieceIndex(),
+ f.EndPieceIndex(),
+ f.offset,
+ f.length,
+ &f.t._completedPieces,
+ func(pieceIndex int) int64 {
+ return int64(f.t.piece(pieceIndex).numDirtyBytes())
+ },
+ )
}
// The relative file path for a multi-file torrent, and the torrent name for a
}
// Sets the minimum priority for pieces in the File.
-func (f *File) SetPriority(prio piecePriority) {
+func (f *File) SetPriority(prio PiecePriority) {
f.t.cl.lock()
if prio != f.prio {
f.prio = prio
}
// Returns the priority per File.SetPriority.
-func (f *File) Priority() (prio piecePriority) {
+func (f *File) Priority() (prio PiecePriority) {
f.t.cl.rLock()
prio = f.prio
f.t.cl.rUnlock()