Spaces:
Paused
Paused
File size: 1,788 Bytes
81205f1 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | package transfer
import (
"errors"
"fmt"
"github.com/BioHazard786/Warpdrop/cli/internal/ui"
)
var (
ErrPeerDisconnected = errors.New("peer disconnected")
ErrSignalingError = errors.New("signaling server error")
ErrTimeout = errors.New("timeout")
ErrChannelClosed = errors.New("channel closed")
ErrChannelNotOpen = errors.New("channel not open")
ErrTransferDeclined = errors.New("receiver declined the transfer")
ErrTransferCancelled = errors.New("transfer cancelled by user")
ErrBufferTimeout = errors.New("buffer drain timeout")
ErrInvalidFile = errors.New("invalid file")
ErrFilenameMismatch = errors.New("filename mismatch")
ErrUnexpectedSignal = errors.New("unexpected signal type")
ErrMetadataFailed = errors.New("failed to process metadata")
ErrConnectionFailed = errors.New("connection failed")
ErrChannelsNotReady = errors.New("channels not ready")
)
type TransferError struct {
Op string
File string
Err error
Details string
}
func (e *TransferError) Error() string {
if e.File != "" {
return fmt.Sprintf("%s %s: %v", e.Op, e.File, e.Err)
}
if e.Details != "" {
return fmt.Sprintf("%s: %v (%s)", e.Op, e.Err, e.Details)
}
return fmt.Sprintf("%s: %v", e.Op, e.Err)
}
func (e *TransferError) Unwrap() error {
return e.Err
}
func (e *TransferError) Print() {
ui.PrintError(e.Error())
}
func NewError(op string, err error) *TransferError {
return &TransferError{Op: op, Err: err}
}
func NewFileError(op, file string, err error) *TransferError {
return &TransferError{Op: op, File: file, Err: err}
}
func WrapError(op string, err error, details string) *TransferError {
return &TransferError{Op: op, Err: err, Details: details}
}
func PrintErr(err error) {
ui.PrintError(err.Error())
}
|