AadityaPawarx1's picture
Upload 120 files
81205f1 verified
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())
}