github.com/IBM-Cloud/bluemix-go@v0.0.0-20240314082800-4e02a69b84b2/bmxerror/types.go (about) 1 package bmxerror 2 3 import "fmt" 4 5 type genericError struct { 6 code string 7 description string 8 } 9 10 func newGenericError(code, description string) *genericError { 11 return &genericError{code, description} 12 } 13 14 func (g genericError) Error() string { 15 return fmt.Sprintf("%s: %s", g.code, g.description) 16 } 17 18 func (g genericError) String() string { 19 return g.Error() 20 } 21 22 func (g genericError) Code() string { 23 return g.code 24 } 25 26 func (g genericError) Description() string { 27 return g.description 28 } 29 30 type requestError struct { 31 genericError 32 statusCode int 33 } 34 35 func newRequestError(code, description string, statusCode int) *requestError { 36 return &requestError{ 37 genericError: genericError{ 38 code: code, 39 description: description, 40 }, 41 statusCode: statusCode, 42 } 43 } 44 45 func (r requestError) Error() string { 46 return fmt.Sprintf("Request failed with status code: %d, %s: %s", r.statusCode, r.code, r.description) 47 } 48 49 func (r requestError) Code() string { 50 return r.code 51 } 52 func (r requestError) Description() string { 53 return r.description 54 } 55 func (r requestError) StatusCode() int { 56 return r.statusCode 57 }