package nixmsg import "fmt" // APIError 是带协议错误码的错误。 type APIError struct { Code string Message string } func (e *APIError) Error() string { if e.Message == "" { return e.Code } return fmt.Sprintf("%s: %s", e.Code, e.Message) } func apiErr(code, msg string) *APIError { return &APIError{Code: code, Message: msg} } // 常用错误码(与 DEVELOPMENT 第 6.10 节一致)。 const ( CodeBodyTooLarge = "body_too_large" CodeFrameTooLarge = "frame_too_large" CodeMetaTooLarge = "meta_too_large" CodeRateLimited = "rate_limited" CodeBadRequest = "bad_request" CodeNotReady = "not_ready" CodeBusy = "busy" CodeSessionInvalid = "session_invalid" CodeBadCredentials = "bad_credentials" CodeQueueFull = "queue_full" CodeNotConnected = "not_connected" CodeClosed = "closed" CodeAuthFailed = "auth_failed" CodeKicked = "kicked" CodeTakenOver = "taken_over" CodeDisabled = "disabled" CodeDeleted = "deleted" CodePasswordReset = "password_reset" CodeResultUnknown = "result_unknown" CodeLoggedOut = "logged_out" ) // AuthReason 是认证失败 / 顶号原因。 type AuthReason string const ( AuthSessionInvalid AuthReason = "session_invalid" AuthBadCredentials AuthReason = "bad_credentials" AuthTakenOver AuthReason = "taken_over" AuthDisabled AuthReason = "disabled" AuthDeleted AuthReason = "deleted" AuthPasswordReset AuthReason = "password_reset" AuthRateLimited AuthReason = "rate_limited" )