2023-09-16 16:29:03 +02:00
|
|
|
#pragma once
|
2024-02-04 14:59:00 +01:00
|
|
|
#include <cstdint>
|
2024-02-04 13:52:08 +01:00
|
|
|
#include <limits>
|
2023-09-16 16:29:03 +02:00
|
|
|
|
|
|
|
namespace VWeb {
|
|
|
|
enum class HttpStatusCode : int {
|
|
|
|
Continue = 100,
|
|
|
|
SwitchingProtocols = 101,
|
|
|
|
Processing = 102,
|
|
|
|
EarlyHints = 103,
|
|
|
|
OK = 200,
|
|
|
|
Created = 201,
|
|
|
|
Accepted = 202,
|
|
|
|
NonAuthoritativeInformation = 203,
|
|
|
|
NoContent = 204,
|
|
|
|
ResetContent = 205,
|
|
|
|
PartialContent = 206,
|
|
|
|
MultiStatus = 207,
|
|
|
|
AlreadyReported = 208,
|
|
|
|
IMUsed = 226,
|
|
|
|
MultipleChoices = 300,
|
|
|
|
MovedPermanently = 301,
|
|
|
|
Found = 302,
|
|
|
|
SeeOther = 303,
|
|
|
|
NotModified = 304,
|
|
|
|
UseProxy = 305,
|
|
|
|
TemporaryRedirect = 307,
|
|
|
|
PermanentRedirect = 308,
|
|
|
|
BadRequest = 400,
|
|
|
|
Unauthorized = 401,
|
|
|
|
PaymentRequired = 402,
|
|
|
|
Forbidden = 403,
|
|
|
|
NotFound = 404,
|
|
|
|
MethodNotAllowed = 405,
|
|
|
|
NotAcceptable = 406,
|
|
|
|
ProxyAuthenticationRequired = 407,
|
|
|
|
RequestTimeout = 408,
|
|
|
|
Conflict = 409,
|
|
|
|
Gone = 410,
|
|
|
|
LengthRequired = 411,
|
|
|
|
PreconditionFailed = 412,
|
|
|
|
PayloadTooLarge = 413,
|
|
|
|
URITooLong = 414,
|
|
|
|
UnsupportedMediaType = 415,
|
|
|
|
RangeNotSatisfiable = 416,
|
|
|
|
ExpectationFailed = 417,
|
|
|
|
ImATeapot = 418,
|
|
|
|
UnprocessableEntity = 422,
|
|
|
|
Locked = 423,
|
|
|
|
FailedDependency = 424,
|
|
|
|
UpgradeRequired = 426,
|
|
|
|
PreconditionRequired = 428,
|
|
|
|
TooManyRequests = 429,
|
|
|
|
RequestHeaderFieldsTooLarge = 431,
|
|
|
|
UnavailableForLegalReasons = 451,
|
|
|
|
InternalServerError = 500,
|
|
|
|
NotImplemented = 501,
|
|
|
|
BadGateway = 502,
|
|
|
|
ServiceUnavailable = 503,
|
|
|
|
GatewayTimeout = 504,
|
|
|
|
HTTPVersionNotSupported = 505,
|
|
|
|
VariantAlsoNegotiates = 506,
|
|
|
|
InsufficientStorage = 507,
|
|
|
|
LoopDetected = 508,
|
|
|
|
NotExtended = 510,
|
|
|
|
NetworkAuthenticationRequired = 511
|
|
|
|
};
|
2024-02-04 13:52:08 +01:00
|
|
|
|
|
|
|
enum class HttpMethod : uint32_t {
|
|
|
|
GET = 1 << 0,
|
|
|
|
HEAD = 1 << 1,
|
|
|
|
OPTIONS = 1 << 2,
|
|
|
|
POST = 1 << 3,
|
|
|
|
PUT = 1 << 4,
|
|
|
|
PATCH = 1 << 5,
|
|
|
|
DELETE = 1 << 6,
|
|
|
|
FALLBACK = 1 << 7,
|
|
|
|
ALL = std::numeric_limits<uint32_t>::max()
|
2023-09-16 16:29:03 +02:00
|
|
|
};
|
2024-02-04 13:52:08 +01:00
|
|
|
|
|
|
|
inline uint32_t operator|(HttpMethod lhs, HttpMethod rhs) {
|
|
|
|
return static_cast<uint32_t>(lhs) | static_cast<uint32_t>(rhs);
|
|
|
|
}
|
|
|
|
|
2024-02-04 18:17:33 +01:00
|
|
|
inline uint32_t operator|(uint32_t lhs, HttpMethod rhs) {
|
|
|
|
return lhs | static_cast<uint32_t>(rhs);
|
|
|
|
}
|
|
|
|
|
2024-02-04 13:52:08 +01:00
|
|
|
inline bool operator&(const uint32_t lhs, HttpMethod rhs) {
|
|
|
|
return lhs & static_cast<uint32_t>(rhs);
|
|
|
|
}
|
|
|
|
|
2023-09-16 16:29:03 +02:00
|
|
|
} // namespace VWeb
|