github.com/adityamillind98/moby@v23.0.0-rc.4+incompatible/errdefs/helpers.go (about)

     1  package errdefs // import "github.com/docker/docker/errdefs"
     2  
     3  import "context"
     4  
     5  type errNotFound struct{ error }
     6  
     7  func (errNotFound) NotFound() {}
     8  
     9  func (e errNotFound) Cause() error {
    10  	return e.error
    11  }
    12  
    13  func (e errNotFound) Unwrap() error {
    14  	return e.error
    15  }
    16  
    17  // NotFound is a helper to create an error of the class with the same name from any error type
    18  func NotFound(err error) error {
    19  	if err == nil || IsNotFound(err) {
    20  		return err
    21  	}
    22  	return errNotFound{err}
    23  }
    24  
    25  type errInvalidParameter struct{ error }
    26  
    27  func (errInvalidParameter) InvalidParameter() {}
    28  
    29  func (e errInvalidParameter) Cause() error {
    30  	return e.error
    31  }
    32  
    33  func (e errInvalidParameter) Unwrap() error {
    34  	return e.error
    35  }
    36  
    37  // InvalidParameter is a helper to create an error of the class with the same name from any error type
    38  func InvalidParameter(err error) error {
    39  	if err == nil || IsInvalidParameter(err) {
    40  		return err
    41  	}
    42  	return errInvalidParameter{err}
    43  }
    44  
    45  type errConflict struct{ error }
    46  
    47  func (errConflict) Conflict() {}
    48  
    49  func (e errConflict) Cause() error {
    50  	return e.error
    51  }
    52  
    53  func (e errConflict) Unwrap() error {
    54  	return e.error
    55  }
    56  
    57  // Conflict is a helper to create an error of the class with the same name from any error type
    58  func Conflict(err error) error {
    59  	if err == nil || IsConflict(err) {
    60  		return err
    61  	}
    62  	return errConflict{err}
    63  }
    64  
    65  type errUnauthorized struct{ error }
    66  
    67  func (errUnauthorized) Unauthorized() {}
    68  
    69  func (e errUnauthorized) Cause() error {
    70  	return e.error
    71  }
    72  
    73  func (e errUnauthorized) Unwrap() error {
    74  	return e.error
    75  }
    76  
    77  // Unauthorized is a helper to create an error of the class with the same name from any error type
    78  func Unauthorized(err error) error {
    79  	if err == nil || IsUnauthorized(err) {
    80  		return err
    81  	}
    82  	return errUnauthorized{err}
    83  }
    84  
    85  type errUnavailable struct{ error }
    86  
    87  func (errUnavailable) Unavailable() {}
    88  
    89  func (e errUnavailable) Cause() error {
    90  	return e.error
    91  }
    92  
    93  func (e errUnavailable) Unwrap() error {
    94  	return e.error
    95  }
    96  
    97  // Unavailable is a helper to create an error of the class with the same name from any error type
    98  func Unavailable(err error) error {
    99  	if err == nil || IsUnavailable(err) {
   100  		return err
   101  	}
   102  	return errUnavailable{err}
   103  }
   104  
   105  type errForbidden struct{ error }
   106  
   107  func (errForbidden) Forbidden() {}
   108  
   109  func (e errForbidden) Cause() error {
   110  	return e.error
   111  }
   112  
   113  func (e errForbidden) Unwrap() error {
   114  	return e.error
   115  }
   116  
   117  // Forbidden is a helper to create an error of the class with the same name from any error type
   118  func Forbidden(err error) error {
   119  	if err == nil || IsForbidden(err) {
   120  		return err
   121  	}
   122  	return errForbidden{err}
   123  }
   124  
   125  type errSystem struct{ error }
   126  
   127  func (errSystem) System() {}
   128  
   129  func (e errSystem) Cause() error {
   130  	return e.error
   131  }
   132  
   133  func (e errSystem) Unwrap() error {
   134  	return e.error
   135  }
   136  
   137  // System is a helper to create an error of the class with the same name from any error type
   138  func System(err error) error {
   139  	if err == nil || IsSystem(err) {
   140  		return err
   141  	}
   142  	return errSystem{err}
   143  }
   144  
   145  type errNotModified struct{ error }
   146  
   147  func (errNotModified) NotModified() {}
   148  
   149  func (e errNotModified) Cause() error {
   150  	return e.error
   151  }
   152  
   153  func (e errNotModified) Unwrap() error {
   154  	return e.error
   155  }
   156  
   157  // NotModified is a helper to create an error of the class with the same name from any error type
   158  func NotModified(err error) error {
   159  	if err == nil || IsNotModified(err) {
   160  		return err
   161  	}
   162  	return errNotModified{err}
   163  }
   164  
   165  type errNotImplemented struct{ error }
   166  
   167  func (errNotImplemented) NotImplemented() {}
   168  
   169  func (e errNotImplemented) Cause() error {
   170  	return e.error
   171  }
   172  
   173  func (e errNotImplemented) Unwrap() error {
   174  	return e.error
   175  }
   176  
   177  // NotImplemented is a helper to create an error of the class with the same name from any error type
   178  func NotImplemented(err error) error {
   179  	if err == nil || IsNotImplemented(err) {
   180  		return err
   181  	}
   182  	return errNotImplemented{err}
   183  }
   184  
   185  type errUnknown struct{ error }
   186  
   187  func (errUnknown) Unknown() {}
   188  
   189  func (e errUnknown) Cause() error {
   190  	return e.error
   191  }
   192  
   193  func (e errUnknown) Unwrap() error {
   194  	return e.error
   195  }
   196  
   197  // Unknown is a helper to create an error of the class with the same name from any error type
   198  func Unknown(err error) error {
   199  	if err == nil || IsUnknown(err) {
   200  		return err
   201  	}
   202  	return errUnknown{err}
   203  }
   204  
   205  type errCancelled struct{ error }
   206  
   207  func (errCancelled) Cancelled() {}
   208  
   209  func (e errCancelled) Cause() error {
   210  	return e.error
   211  }
   212  
   213  func (e errCancelled) Unwrap() error {
   214  	return e.error
   215  }
   216  
   217  // Cancelled is a helper to create an error of the class with the same name from any error type
   218  func Cancelled(err error) error {
   219  	if err == nil || IsCancelled(err) {
   220  		return err
   221  	}
   222  	return errCancelled{err}
   223  }
   224  
   225  type errDeadline struct{ error }
   226  
   227  func (errDeadline) DeadlineExceeded() {}
   228  
   229  func (e errDeadline) Cause() error {
   230  	return e.error
   231  }
   232  
   233  func (e errDeadline) Unwrap() error {
   234  	return e.error
   235  }
   236  
   237  // Deadline is a helper to create an error of the class with the same name from any error type
   238  func Deadline(err error) error {
   239  	if err == nil || IsDeadline(err) {
   240  		return err
   241  	}
   242  	return errDeadline{err}
   243  }
   244  
   245  type errDataLoss struct{ error }
   246  
   247  func (errDataLoss) DataLoss() {}
   248  
   249  func (e errDataLoss) Cause() error {
   250  	return e.error
   251  }
   252  
   253  func (e errDataLoss) Unwrap() error {
   254  	return e.error
   255  }
   256  
   257  // DataLoss is a helper to create an error of the class with the same name from any error type
   258  func DataLoss(err error) error {
   259  	if err == nil || IsDataLoss(err) {
   260  		return err
   261  	}
   262  	return errDataLoss{err}
   263  }
   264  
   265  // FromContext returns the error class from the passed in context
   266  func FromContext(ctx context.Context) error {
   267  	e := ctx.Err()
   268  	if e == nil {
   269  		return nil
   270  	}
   271  
   272  	if e == context.Canceled {
   273  		return Cancelled(e)
   274  	}
   275  	if e == context.DeadlineExceeded {
   276  		return Deadline(e)
   277  	}
   278  	return Unknown(e)
   279  }