48 lines
830 B
Go
48 lines
830 B
Go
package stderr
|
|
|
|
import "fmt"
|
|
|
|
type Code int
|
|
|
|
type CodeMsg struct {
|
|
Code int `json:"code"`
|
|
Msg string `json:"msg"`
|
|
Tip string `json:"tip,omitempty"`
|
|
}
|
|
|
|
func (c Code) Msg() string {
|
|
msg, ok := codeAndMsg[c]
|
|
if ok {
|
|
return msg
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (c Code) Tip() string {
|
|
tip, ok := codeAndTip[c]
|
|
if ok {
|
|
return tip
|
|
}
|
|
return ""
|
|
}
|
|
|
|
func (c Code) Error() string {
|
|
return fmt.Sprintf("code=%d,msg=%v,tip=%v", c, c.Msg(), c.Tip())
|
|
}
|
|
|
|
func (c Code) Struct() CodeMsg {
|
|
return CodeMsg{Code: int(c), Msg: c.Msg(), Tip: c.Tip()}
|
|
}
|
|
|
|
func New(code int, msg string) error {
|
|
return fmt.Errorf("code:%d,msg:%s", code, msg)
|
|
}
|
|
|
|
func (c Code) SetMsg(msg string) CodeMsg {
|
|
return CodeMsg{Code: int(c), Msg: msg, Tip: c.Tip()}
|
|
}
|
|
|
|
func (c Code) SetTip(tip string) CodeMsg {
|
|
return CodeMsg{Code: int(c), Msg: c.Msg(), Tip: tip}
|
|
}
|