Thoth
A functional, expressive, asynchronous C++26 webdev library
Loading...
Searching...
No Matches
StatusCodeEnum.hpp
Go to the documentation of this file.
1#pragma once
2#include <expected>
3#include <optional>
4
5
6namespace Thoth::Http {
7 enum class StatusCodeEnum {
8 // Informational responses
9 CONTINUE = 100,
12 EARLY_HINTS = 103,
13
14
15 // Successful responses
16 OK = 200,
17 CREATED = 201,
18 ACCEPTED = 202,
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,
30 FOUND = 302,
31 SEE_OTHER = 303,
32 NOT_MODIFIED = 304,
34 UNUSED = 306,
37
38
39 // Client error responses
40 BAD_REQUEST = 400,
41 UNAUTHORIZED = 401,
42 PAYMENT_REQUIRED = 402,
43 FORBIDDEN = 403,
44 NOT_FOUND = 404,
46 NOT_ACCEPTABLE = 406,
48 REQUEST_TIMEOUT = 408,
49 CONFLICT = 409,
50 GONE = 410,
51 LENGTH_REQUIRED = 411,
54 URI_TOO_LONG = 414,
58 IM_A_TEAPOT = 418,
60 UNPROCESSABLE_CONTENT = 422, // (WebDAV)
61 LOCKED = 423, // (WebDAV)
62 FAILED_DEPENDENCY = 424, // (WebDAV)
64 UPGRADE_REQUIRED = 426,
69
70
71 // Server error responses
73 NOT_IMPLEMENTED = 501,
74 BAD_GATEWAY = 502,
76 GATEWAY_TIMEOUT = 504,
79 INSUFFICIENT_STORAGE = 507, // (WebDAV)
80 LOOP_DETECTED = 508, // (WebDAV)
81 NOT_EXTENDED = 510,
83 };
84
85
93
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
112}
Definition Client.hpp:12
std::expected< T, StatusCodeEnum > WebResult
Definition StatusCodeEnum.hpp:108
StatusCodeEnum
Definition StatusCodeEnum.hpp:7
StatusTypeEnum
Definition StatusCodeEnum.hpp:86
WebResult< std::monostate > WebResultOper
Definition StatusCodeEnum.hpp:111
constexpr StatusTypeEnum GetStatusType(StatusCodeEnum code)
Check what type of code StatusCodeEnum is, the first digit of it's number.
Definition StatusCodeEnum.hpp:101