package ecode import "fmt" type CodeError struct { Code ErrorCode `json:"code"` Message string `json:"message"` } func (e *CodeError) Error() string { return fmt.Sprintf("code: %s, message: %s", e.Code, e.Message) } func New(code ErrorCode, message string) *CodeError { return &CodeError{ Code: code, Message: message, } } func Newf(code ErrorCode, format string, args ...interface{}) *CodeError { return &CodeError{ Code: code, Message: fmt.Sprintf(format, args...), } }