/// HTTP Status codes according to `rfc7231` /// https://tools.ietf.org/html/rfc7231#section-6 /// (taken from https://github.com/Luukdegram/apple_pie/blob/master/src/response.zig) pub const StatusCode = enum(u16) { // Informational 1xx @"continue" = 100, // Successful 2xx switching_protocols = 101, ok = 200, created = 201, accepted = 202, non_authoritative_information = 203, no_content = 204, reset_content = 205, // redirections 3xx partial_content = 206, multiple_choices = 300, moved_permanently = 301, found = 302, see_other = 303, not_modified = 304, use_proxy = 305, temporary_redirect = 307, // client errors 4xx bad_request = 400, unauthorized = 401, payment_required = 402, forbidden = 403, not_found = 404, method_not_allowed = 405, not_acceptable = 406, proxy_authentication_required = 407, request_timeout = 408, conflict = 409, gone = 410, length_required = 411, precondition_failed = 412, request_entity_too_large = 413, request_uri_too_long = 414, unsupported_mediatype = 415, requested_range_not_satisfiable = 416, expectation_failed = 417, /// teapot is an extension status code and not required for clients to support teapot = 418, upgrade_required = 426, /// extra status code according to `https://tools.ietf.org/html/rfc6585#section-5` request_header_fields_too_large = 431, // server errors 5xx internal_server_error = 500, not_implemented = 501, bad_gateway = 502, service_unavailable = 503, gateway_timeout = 504, http_version_not_supported = 505, _, /// Returns the string value of a `StatusCode` /// for example: .ResetContent returns "Returns Content". pub fn toString(self: StatusCode) []const u8 { return switch (self) { .@"continue" => "Continue", .switching_protocols => "Switching Protocols", .ok => "Ok", .created => "Created", .accepted => "Accepted", .non_authoritative_information => "Non Authoritative Information", .no_content => "No Content", .reset_content => "Reset Content", .partial_content => "Partial Content", .multiple_choices => "Multiple Choices", .moved_permanently => "Moved Permanently", .found => "Found", .see_other => "See Other", .not_modified => "Not Modified", .use_proxy => "Use Proxy", .temporary_redirect => "Temporary Redirect", .bad_request => "Bad Request", .unauthorized => "Unauthorized", .payment_required => "Payment Required", .forbidden => "Forbidden", .not_found => "Not Found", .method_not_allowed => "Method Not Allowed", .not_acceptable => "Not Acceptable", .proxy_authentication_required => "Proxy Authentication Required", .request_timeout => "Request Timeout", .conflict => "Conflict", .gone => "Gone", .length_required => "Length Required", .precondition_failed => "Precondition Failed", .request_entity_too_large => "Request Entity Too Large", .request_uri_too_long => "Request-URI Too Long", .unsupported_mediatype => "Unsupported Media Type", .requested_range_not_satisfiable => "Requested Range Not Satisfiable", .teapot => "I'm a Teapot", .upgrade_required => "Upgrade Required", .request_header_fields_too_large => "Request Header Fields Too Large", .expectation_failed => "Expectation Failed", .internal_server_error => "Internal Server Error", .not_implemented => "Not Implemented", .bad_gateway => "Bad Gateway", .service_unavailable => "Service Unavailable", .gateway_timeout => "Gateway Timeout", .http_version_not_supported => "HTTP Version Not Supported", _ => "", }; } };