6 "github.com/anacrolix/torrent/metainfo"
9 type ClientImplCloser interface {
14 // Represents data storage for an unspecified torrent.
15 type ClientImpl interface {
16 OpenTorrent(info *metainfo.Info, infoHash metainfo.Hash) (TorrentImpl, error)
19 // Data storage bound to a torrent.
20 type TorrentImpl struct {
21 Piece func(metainfo.Piece) PieceImpl
23 // Storages that share the same value, will provide a pointer to the same function.
24 Capacity *func() *int64
27 // Interacts with torrent piece data. Optional interfaces to implement include io.WriterTo, such as
28 // when a piece supports a more efficient way to write out incomplete chunks
29 type PieceImpl interface {
30 // These interfaces are not as strict as normally required. They can
31 // assume that the parameters are appropriate for the dimensions of the
35 // Called when the client believes the piece data will pass a hash check.
36 // The storage can move or mark the piece data as read-only as it sees
39 MarkNotComplete() error
40 // Returns true if the piece is complete.
41 Completion() Completion
44 type Completion struct {