package errs import ( "fmt" "github.com/spf13/cast" ) type err struct { code Reason msg string } func New(code Reason, message any) error { return err{ code: code, msg: cast.ToString(message), } } // Error error func (e err) Error() string { return fmt.Sprintf("code=%d msg=%s", e.code, e.msg) } // Code return code func (e err) Code() Reason { return e.code } // Message return message func (e err) Message() string { return e.msg }