rclone/vendor/storj.io/common/errs2/ignore.go
2020-05-12 15:56:50 +00:00

31 lines
648 B
Go

// Copyright (C) 2019 Storj Labs, Inc.
// See LICENSE for copying information.
package errs2
import (
"context"
"github.com/zeebo/errs"
"storj.io/common/internal/grpchook"
"storj.io/common/rpc/rpcstatus"
)
// IsCanceled returns true, when the error is a cancellation.
func IsCanceled(err error) bool {
return errs.IsFunc(err, func(err error) bool {
return err == context.Canceled ||
grpchook.IsErrServerStopped(err) ||
rpcstatus.Code(err) == rpcstatus.Canceled
})
}
// IgnoreCanceled returns nil, when the operation was about canceling.
func IgnoreCanceled(err error) error {
if IsCanceled(err) {
return nil
}
return err
}