123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- package pogs
- import (
- "fmt"
- "time"
- )
- type RetryableError struct {
- err error
- Delay time.Duration
- }
- func (re *RetryableError) Error() string {
- return re.err.Error()
- }
- // RetryErrorAfter wraps err to indicate that client should retry after delay
- func RetryErrorAfter(err error, delay time.Duration) *RetryableError {
- return &RetryableError{
- err: err,
- Delay: delay,
- }
- }
- func (re *RetryableError) Unwrap() error {
- return re.err
- }
- // RPCError is used to indicate errors returned by the RPC subsystem rather
- // than failure of a remote operation
- type RPCError struct {
- err error
- }
- func (re *RPCError) Error() string {
- return re.err.Error()
- }
- func wrapRPCError(err error) *RPCError {
- if err != nil {
- return &RPCError{
- err: err,
- }
- }
- return nil
- }
- func newRPCError(format string, args ...interface{}) *RPCError {
- return &RPCError{
- fmt.Errorf(format, args...),
- }
- }
- func (re *RPCError) Unwrap() error {
- return re.err
- }
|