use crate::*;
#[derive(Clone, Debug, Deserialize, DisplayDebug, Eq, PartialEq, Serialize)]
pub enum RequestError {
HttpRead(HttpStatus),
GetTcpStream(HttpStatus),
GetTlsStream(HttpStatus),
ReadConnection(HttpStatus),
RequestAborted(HttpStatus),
TlsStreamConnect(HttpStatus),
NeedOpenRedirect(HttpStatus),
MaxRedirectTimes(HttpStatus),
MethodsNotSupport(HttpStatus),
RedirectInvalidUrl(HttpStatus),
ClientDisconnected(HttpStatus),
RedirectUrlDeadLoop(HttpStatus),
ClientClosedConnection(HttpStatus),
IncompleteWebSocketFrame(HttpStatus),
RequestTooLong(HttpStatus),
PathTooLong(HttpStatus),
QueryTooLong(HttpStatus),
HeaderLineTooLong(HttpStatus),
TooManyHeaders(HttpStatus),
HeaderKeyTooLong(HttpStatus),
HeaderValueTooLong(HttpStatus),
ContentLengthTooLarge(HttpStatus),
InvalidContentLength(HttpStatus),
InvalidUrlScheme(HttpStatus),
InvalidUrlHost(HttpStatus),
InvalidUrlPort(HttpStatus),
InvalidUrlPath(HttpStatus),
InvalidUrlQuery(HttpStatus),
InvalidUrlFragment(HttpStatus),
ReadTimeout(HttpStatus),
WriteTimeout(HttpStatus),
TcpConnectionFailed(HttpStatus),
TlsHandshakeFailed(HttpStatus),
TlsCertificateInvalid(HttpStatus),
WebSocketFrameTooLarge(HttpStatus),
WebSocketOpcodeUnsupported(HttpStatus),
WebSocketMaskMissing(HttpStatus),
WebSocketPayloadCorrupted(HttpStatus),
WebSocketInvalidUtf8(HttpStatus),
WebSocketInvalidCloseCode(HttpStatus),
WebSocketInvalidExtension(HttpStatus),
HttpRequestPartsInsufficient(HttpStatus),
TcpStreamConnect(HttpStatus),
TlsConnectorBuild(HttpStatus),
InvalidUrl(HttpStatus),
ConfigReadError(HttpStatus),
TcpStreamConnectString(HttpStatus),
TlsConnectorBuildString(HttpStatus),
Request(String),
Unknown(HttpStatus),
}