github.com/docker/docker@v299999999.0.0-20200612211812-aaf470eca7b5+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 // NotFound is a helper to create an error of the class with the same name from any error type 14 func NotFound(err error) error { 15 if err == nil || IsNotFound(err) { 16 return err 17 } 18 return errNotFound{err} 19 } 20 21 type errInvalidParameter struct{ error } 22 23 func (errInvalidParameter) InvalidParameter() {} 24 25 func (e errInvalidParameter) Cause() error { 26 return e.error 27 } 28 29 // InvalidParameter is a helper to create an error of the class with the same name from any error type 30 func InvalidParameter(err error) error { 31 if err == nil || IsInvalidParameter(err) { 32 return err 33 } 34 return errInvalidParameter{err} 35 } 36 37 type errConflict struct{ error } 38 39 func (errConflict) Conflict() {} 40 41 func (e errConflict) Cause() error { 42 return e.error 43 } 44 45 // Conflict is a helper to create an error of the class with the same name from any error type 46 func Conflict(err error) error { 47 if err == nil || IsConflict(err) { 48 return err 49 } 50 return errConflict{err} 51 } 52 53 type errUnauthorized struct{ error } 54 55 func (errUnauthorized) Unauthorized() {} 56 57 func (e errUnauthorized) Cause() error { 58 return e.error 59 } 60 61 // Unauthorized is a helper to create an error of the class with the same name from any error type 62 func Unauthorized(err error) error { 63 if err == nil || IsUnauthorized(err) { 64 return err 65 } 66 return errUnauthorized{err} 67 } 68 69 type errUnavailable struct{ error } 70 71 func (errUnavailable) Unavailable() {} 72 73 func (e errUnavailable) Cause() error { 74 return e.error 75 } 76 77 // Unavailable is a helper to create an error of the class with the same name from any error type 78 func Unavailable(err error) error { 79 if err == nil || IsUnavailable(err) { 80 return err 81 } 82 return errUnavailable{err} 83 } 84 85 type errForbidden struct{ error } 86 87 func (errForbidden) Forbidden() {} 88 89 func (e errForbidden) Cause() error { 90 return e.error 91 } 92 93 // Forbidden is a helper to create an error of the class with the same name from any error type 94 func Forbidden(err error) error { 95 if err == nil || IsForbidden(err) { 96 return err 97 } 98 return errForbidden{err} 99 } 100 101 type errSystem struct{ error } 102 103 func (errSystem) System() {} 104 105 func (e errSystem) Cause() error { 106 return e.error 107 } 108 109 // System is a helper to create an error of the class with the same name from any error type 110 func System(err error) error { 111 if err == nil || IsSystem(err) { 112 return err 113 } 114 return errSystem{err} 115 } 116 117 type errNotModified struct{ error } 118 119 func (errNotModified) NotModified() {} 120 121 func (e errNotModified) Cause() error { 122 return e.error 123 } 124 125 // NotModified is a helper to create an error of the class with the same name from any error type 126 func NotModified(err error) error { 127 if err == nil || IsNotModified(err) { 128 return err 129 } 130 return errNotModified{err} 131 } 132 133 type errNotImplemented struct{ error } 134 135 func (errNotImplemented) NotImplemented() {} 136 137 func (e errNotImplemented) Cause() error { 138 return e.error 139 } 140 141 // NotImplemented is a helper to create an error of the class with the same name from any error type 142 func NotImplemented(err error) error { 143 if err == nil || IsNotImplemented(err) { 144 return err 145 } 146 return errNotImplemented{err} 147 } 148 149 type errUnknown struct{ error } 150 151 func (errUnknown) Unknown() {} 152 153 func (e errUnknown) Cause() error { 154 return e.error 155 } 156 157 // Unknown is a helper to create an error of the class with the same name from any error type 158 func Unknown(err error) error { 159 if err == nil || IsUnknown(err) { 160 return err 161 } 162 return errUnknown{err} 163 } 164 165 type errCancelled struct{ error } 166 167 func (errCancelled) Cancelled() {} 168 169 func (e errCancelled) Cause() error { 170 return e.error 171 } 172 173 // Cancelled is a helper to create an error of the class with the same name from any error type 174 func Cancelled(err error) error { 175 if err == nil || IsCancelled(err) { 176 return err 177 } 178 return errCancelled{err} 179 } 180 181 type errDeadline struct{ error } 182 183 func (errDeadline) DeadlineExceeded() {} 184 185 func (e errDeadline) Cause() error { 186 return e.error 187 } 188 189 // Deadline is a helper to create an error of the class with the same name from any error type 190 func Deadline(err error) error { 191 if err == nil || IsDeadline(err) { 192 return err 193 } 194 return errDeadline{err} 195 } 196 197 type errDataLoss struct{ error } 198 199 func (errDataLoss) DataLoss() {} 200 201 func (e errDataLoss) Cause() error { 202 return e.error 203 } 204 205 // DataLoss is a helper to create an error of the class with the same name from any error type 206 func DataLoss(err error) error { 207 if err == nil || IsDataLoss(err) { 208 return err 209 } 210 return errDataLoss{err} 211 } 212 213 // FromContext returns the error class from the passed in context 214 func FromContext(ctx context.Context) error { 215 e := ctx.Err() 216 if e == nil { 217 return nil 218 } 219 220 if e == context.Canceled { 221 return Cancelled(e) 222 } 223 if e == context.DeadlineExceeded { 224 return Deadline(e) 225 } 226 return Unknown(e) 227 }