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  }