github.com/vmware/transport-go@v1.3.4/plank/pkg/server/base_error.go (about) 1 package server 2 3 import "fmt" 4 5 var ( 6 errServerInit = &baseError{message: "Server initialization failed"} 7 errHttp = &baseError{message: "HTTP error"} 8 errInternal = &baseError{message: "Internal error"} 9 errUndefined = &baseError{message: "Undefined error"} 10 ) 11 12 type baseError struct { 13 wrappedErr error 14 baseErr *baseError 15 message string 16 } 17 18 func (e baseError) Is(err error) bool { 19 return e.baseErr == err 20 } 21 22 func (e baseError) Error() string { 23 return fmt.Sprintf("[plank] Error: %s: %s\n", e.baseErr.message, e.wrappedErr.Error()) 24 } 25 26 func wrapError(baseType error, err error) error { 27 switch baseType { 28 case errServerInit: 29 return &baseError{baseErr: errServerInit, wrappedErr: err} 30 case errInternal: 31 return &baseError{baseErr: errInternal, wrappedErr: err} 32 case errHttp: 33 return &baseError{baseErr: errHttp, wrappedErr: err} 34 } 35 return &baseError{baseErr: errUndefined, wrappedErr: err} 36 }