Thoth
A functional, expressive, asynchronous C++26 webdev library
Theme:
Default
Round
Robot
Loading...
Searching...
No Matches
StatusCodeEnum.hpp
Go to the documentation of this file.
1
#pragma once
2
#include <expected>
3
#include <optional>
4
5
6
namespace
Thoth::Http
{
7
enum class
StatusCodeEnum
{
8
// Informational responses
9
CONTINUE
= 100,
10
SWITCHING_PROTOCOLS
= 101,
11
PROCESSING_DEPRECATED
= 102,
12
EARLY_HINTS
= 103,
13
14
15
// Successful responses
16
OK
= 200,
17
CREATED
= 201,
18
ACCEPTED
= 202,
19
NON_AUTHORITATIVE_INFORMATION
= 203,
20
NO_CONTENT
= 204,
21
RESET_CONTENT
= 205,
22
PARTIAL_CONTENT
= 206,
23
MULTI_STATUS
= 207,
// (WebDAV)
24
ALREADY_REPORTED
= 208,
// (WebDAV)
25
IM_USED
= 226,
// (HTTP Delta encoding)
26
27
// Redirection messages
28
MULTIPLE_CHOICES
= 300,
29
MOVED_PERMANENTLY
= 301,
30
FOUND
= 302,
31
SEE_OTHER
= 303,
32
NOT_MODIFIED
= 304,
33
USE_PROXY_DEPRECATED
= 305,
34
UNUSED
= 306,
35
TEMPORARY_REDIRECT
= 307,
36
PERMANENT_REDIRECT
= 308,
37
38
39
// Client error responses
40
BAD_REQUEST
= 400,
41
UNAUTHORIZED
= 401,
42
PAYMENT_REQUIRED
= 402,
43
FORBIDDEN
= 403,
44
NOT_FOUND
= 404,
45
METHOD_NOT_ALLOWED
= 405,
46
NOT_ACCEPTABLE
= 406,
47
PROXY_AUTHENTICATION_REQUIRED
= 407,
48
REQUEST_TIMEOUT
= 408,
49
CONFLICT
= 409,
50
GONE
= 410,
51
LENGTH_REQUIRED
= 411,
52
PRECONDITION_FAILED
= 412,
53
CONTENT_TOO_LARGE
= 413,
54
URI_TOO_LONG
= 414,
55
UNSUPPORTED_MEDIA_TYPE
= 415,
56
RANGE_NOT_SATISFIABLE
= 416,
57
EXPECTATION_FAILED
= 417,
58
IM_A_TEAPOT
= 418,
59
MISDIRECTED_REQUEST
= 421,
60
UNPROCESSABLE_CONTENT
= 422,
// (WebDAV)
61
LOCKED
= 423,
// (WebDAV)
62
FAILED_DEPENDENCY
= 424,
// (WebDAV)
63
TOO_EARLY_EXPERIMENTAL
= 425,
64
UPGRADE_REQUIRED
= 426,
65
PRECONDITION_REQUIRED
= 428,
66
TOO_MANY_REQUESTS
= 429,
67
REQUEST_HEADER_FIELDS_TOO_LARGE
= 431,
68
UNAVAILABLE_FOR_LEGAL_REASONS
= 451,
69
70
71
// Server error responses
72
INTERNAL_SERVER_ERROR
= 500,
73
NOT_IMPLEMENTED
= 501,
74
BAD_GATEWAY
= 502,
75
SERVICE_UNAVAILABLE
= 503,
76
GATEWAY_TIMEOUT
= 504,
77
HTTP_VERSION_NOT_SUPPORTED
= 505,
78
VARIANT_ALSO_NEGOTIATES
= 506,
79
INSUFFICIENT_STORAGE
= 507,
// (WebDAV)
80
LOOP_DETECTED
= 508,
// (WebDAV)
81
NOT_EXTENDED
= 510,
82
NETWORK_AUTHENTICATION_REQUIRED
= 511,
83
};
84
85
86
enum class
StatusTypeEnum
{
87
INFORMATIONAL
,
88
SUCCESSFUL
,
89
REDIRECTION
,
90
CLIENT_ERROR
,
91
SERVER_ERROR
92
};
93
101
constexpr
StatusTypeEnum
GetStatusType
(
StatusCodeEnum
code) {
102
return
static_cast<
StatusTypeEnum
>
(
static_cast<
size_t
>
(code) / 100 - 1);
103
}
104
105
106
107
template
<
class
T>
108
using
WebResult
= std::expected<T, StatusCodeEnum>;
109
110
111
using
WebResultOper
=
WebResult<std::monostate>
;
112
}
Thoth::Http
Definition
Client.hpp:12
Thoth::Http::WebResult
std::expected< T, StatusCodeEnum > WebResult
Definition
StatusCodeEnum.hpp:108
Thoth::Http::StatusCodeEnum
StatusCodeEnum
Definition
StatusCodeEnum.hpp:7
Thoth::Http::StatusCodeEnum::INSUFFICIENT_STORAGE
@ INSUFFICIENT_STORAGE
Thoth::Http::StatusCodeEnum::UNAUTHORIZED
@ UNAUTHORIZED
Thoth::Http::StatusCodeEnum::BAD_REQUEST
@ BAD_REQUEST
Thoth::Http::StatusCodeEnum::PROXY_AUTHENTICATION_REQUIRED
@ PROXY_AUTHENTICATION_REQUIRED
Thoth::Http::StatusCodeEnum::EXPECTATION_FAILED
@ EXPECTATION_FAILED
Thoth::Http::StatusCodeEnum::METHOD_NOT_ALLOWED
@ METHOD_NOT_ALLOWED
Thoth::Http::StatusCodeEnum::UNAVAILABLE_FOR_LEGAL_REASONS
@ UNAVAILABLE_FOR_LEGAL_REASONS
Thoth::Http::StatusCodeEnum::PROCESSING_DEPRECATED
@ PROCESSING_DEPRECATED
Thoth::Http::StatusCodeEnum::IM_A_TEAPOT
@ IM_A_TEAPOT
Thoth::Http::StatusCodeEnum::GATEWAY_TIMEOUT
@ GATEWAY_TIMEOUT
Thoth::Http::StatusCodeEnum::BAD_GATEWAY
@ BAD_GATEWAY
Thoth::Http::StatusCodeEnum::CONTINUE
@ CONTINUE
Thoth::Http::StatusCodeEnum::RANGE_NOT_SATISFIABLE
@ RANGE_NOT_SATISFIABLE
Thoth::Http::StatusCodeEnum::SERVICE_UNAVAILABLE
@ SERVICE_UNAVAILABLE
Thoth::Http::StatusCodeEnum::UNUSED
@ UNUSED
Thoth::Http::StatusCodeEnum::UPGRADE_REQUIRED
@ UPGRADE_REQUIRED
Thoth::Http::StatusCodeEnum::NOT_IMPLEMENTED
@ NOT_IMPLEMENTED
Thoth::Http::StatusCodeEnum::FOUND
@ FOUND
Thoth::Http::StatusCodeEnum::SEE_OTHER
@ SEE_OTHER
Thoth::Http::StatusCodeEnum::INTERNAL_SERVER_ERROR
@ INTERNAL_SERVER_ERROR
Thoth::Http::StatusCodeEnum::TOO_MANY_REQUESTS
@ TOO_MANY_REQUESTS
Thoth::Http::StatusCodeEnum::FORBIDDEN
@ FORBIDDEN
Thoth::Http::StatusCodeEnum::TOO_EARLY_EXPERIMENTAL
@ TOO_EARLY_EXPERIMENTAL
Thoth::Http::StatusCodeEnum::NETWORK_AUTHENTICATION_REQUIRED
@ NETWORK_AUTHENTICATION_REQUIRED
Thoth::Http::StatusCodeEnum::PERMANENT_REDIRECT
@ PERMANENT_REDIRECT
Thoth::Http::StatusCodeEnum::MULTI_STATUS
@ MULTI_STATUS
Thoth::Http::StatusCodeEnum::PAYMENT_REQUIRED
@ PAYMENT_REQUIRED
Thoth::Http::StatusCodeEnum::RESET_CONTENT
@ RESET_CONTENT
Thoth::Http::StatusCodeEnum::VARIANT_ALSO_NEGOTIATES
@ VARIANT_ALSO_NEGOTIATES
Thoth::Http::StatusCodeEnum::TEMPORARY_REDIRECT
@ TEMPORARY_REDIRECT
Thoth::Http::StatusCodeEnum::EARLY_HINTS
@ EARLY_HINTS
Thoth::Http::StatusCodeEnum::FAILED_DEPENDENCY
@ FAILED_DEPENDENCY
Thoth::Http::StatusCodeEnum::URI_TOO_LONG
@ URI_TOO_LONG
Thoth::Http::StatusCodeEnum::NOT_FOUND
@ NOT_FOUND
Thoth::Http::StatusCodeEnum::PRECONDITION_FAILED
@ PRECONDITION_FAILED
Thoth::Http::StatusCodeEnum::NOT_ACCEPTABLE
@ NOT_ACCEPTABLE
Thoth::Http::StatusCodeEnum::CREATED
@ CREATED
Thoth::Http::StatusCodeEnum::GONE
@ GONE
Thoth::Http::StatusCodeEnum::REQUEST_HEADER_FIELDS_TOO_LARGE
@ REQUEST_HEADER_FIELDS_TOO_LARGE
Thoth::Http::StatusCodeEnum::CONTENT_TOO_LARGE
@ CONTENT_TOO_LARGE
Thoth::Http::StatusCodeEnum::LOOP_DETECTED
@ LOOP_DETECTED
Thoth::Http::StatusCodeEnum::NOT_MODIFIED
@ NOT_MODIFIED
Thoth::Http::StatusCodeEnum::ACCEPTED
@ ACCEPTED
Thoth::Http::StatusCodeEnum::LOCKED
@ LOCKED
Thoth::Http::StatusCodeEnum::MOVED_PERMANENTLY
@ MOVED_PERMANENTLY
Thoth::Http::StatusCodeEnum::REQUEST_TIMEOUT
@ REQUEST_TIMEOUT
Thoth::Http::StatusCodeEnum::UNSUPPORTED_MEDIA_TYPE
@ UNSUPPORTED_MEDIA_TYPE
Thoth::Http::StatusCodeEnum::IM_USED
@ IM_USED
Thoth::Http::StatusCodeEnum::MISDIRECTED_REQUEST
@ MISDIRECTED_REQUEST
Thoth::Http::StatusCodeEnum::MULTIPLE_CHOICES
@ MULTIPLE_CHOICES
Thoth::Http::StatusCodeEnum::USE_PROXY_DEPRECATED
@ USE_PROXY_DEPRECATED
Thoth::Http::StatusCodeEnum::NOT_EXTENDED
@ NOT_EXTENDED
Thoth::Http::StatusCodeEnum::PARTIAL_CONTENT
@ PARTIAL_CONTENT
Thoth::Http::StatusCodeEnum::NON_AUTHORITATIVE_INFORMATION
@ NON_AUTHORITATIVE_INFORMATION
Thoth::Http::StatusCodeEnum::ALREADY_REPORTED
@ ALREADY_REPORTED
Thoth::Http::StatusCodeEnum::CONFLICT
@ CONFLICT
Thoth::Http::StatusCodeEnum::UNPROCESSABLE_CONTENT
@ UNPROCESSABLE_CONTENT
Thoth::Http::StatusCodeEnum::OK
@ OK
Thoth::Http::StatusCodeEnum::HTTP_VERSION_NOT_SUPPORTED
@ HTTP_VERSION_NOT_SUPPORTED
Thoth::Http::StatusCodeEnum::LENGTH_REQUIRED
@ LENGTH_REQUIRED
Thoth::Http::StatusCodeEnum::SWITCHING_PROTOCOLS
@ SWITCHING_PROTOCOLS
Thoth::Http::StatusCodeEnum::NO_CONTENT
@ NO_CONTENT
Thoth::Http::StatusCodeEnum::PRECONDITION_REQUIRED
@ PRECONDITION_REQUIRED
Thoth::Http::StatusTypeEnum
StatusTypeEnum
Definition
StatusCodeEnum.hpp:86
Thoth::Http::StatusTypeEnum::SERVER_ERROR
@ SERVER_ERROR
Thoth::Http::StatusTypeEnum::REDIRECTION
@ REDIRECTION
Thoth::Http::StatusTypeEnum::CLIENT_ERROR
@ CLIENT_ERROR
Thoth::Http::StatusTypeEnum::INFORMATIONAL
@ INFORMATIONAL
Thoth::Http::StatusTypeEnum::SUCCESSFUL
@ SUCCESSFUL
Thoth::Http::WebResultOper
WebResult< std::monostate > WebResultOper
Definition
StatusCodeEnum.hpp:111
Thoth::Http::GetStatusType
constexpr StatusTypeEnum GetStatusType(StatusCodeEnum code)
Check what type of code StatusCodeEnum is, the first digit of it's number.
Definition
StatusCodeEnum.hpp:101
include
Thoth
Http
Response
StatusCodeEnum.hpp
Generated by
1.9.8