10USERVER_NAMESPACE_BEGIN
 
   12namespace server::http {
 
   17  kSwitchingProtocols = 101,
 
   22  kNonAuthoritativeInformation = 203,
 
   25  kPartialContent = 206,
 
   27  kAlreadyReported = 208,
 
   29  kMultipleChoices = 300,
 
   30  kMovedPermanently = 301,
 
   35  kTemporaryRedirect = 307,
 
   36  kPermanentRedirect = 308,
 
   39  kPaymentRequired = 402,
 
   42  kMethodNotAllowed = 405,
 
   44  kProxyAuthenticationRequired = 407,
 
   45  kRequestTimeout = 408,
 
   48  kLengthRequired = 411,
 
   49  kPreconditionFailed = 412,
 
   50  kPayloadTooLarge = 413,
 
   52  kUnsupportedMediaType = 415,
 
   53  kRangeNotSatisfiable = 416,
 
   54  kExpectationFailed = 417,
 
   56  kMisdirectedRequest = 421,
 
   57  kUnprocessableEntity = 422,
 
   59  kFailedDependency = 424,
 
   61  kUpgradeRequired = 426,
 
   62  kPreconditionRequired = 428,
 
   63  kTooManyRequests = 429,
 
   64  kRequestHeaderFieldsTooLarge = 431,
 
   65  kUnavailableForLegalReasons = 451,
 
   66  kDeadlineExpired = 498,      
 
   67  kClientClosedRequest = 499,  
 
   68  kInternalServerError = 500,
 
   69  kNotImplemented = 501,
 
   71  kServiceUnavailable = 503,
 
   72  kGatewayTimeout = 504,
 
   73  kHttpVersionNotSupported = 505,
 
   74  kVariantAlsoNegotiates = 506,
 
   75  kInsufficientStorage = 507,
 
   78  kNetworkAuthenticationRequired = 511,
 
   81std::string_view HttpStatusString(HttpStatus status);
 
   90struct fmt::formatter<USERVER_NAMESPACE::server::http::HttpStatus> {
 
   91  constexpr static auto parse(format_parse_context& ctx) { 
return ctx.begin(); }
 
   93  template <
typename FormatContext>
 
   94  auto format(USERVER_NAMESPACE::server::http::HttpStatus status,
 
   95              FormatContext& ctx) 
const {
 
   96    return fmt::format_to(
 
   97        ctx.out(), 
"{} {}", 
static_cast<
int>(status),
 
   98        USERVER_NAMESPACE::server::http::HttpStatusString(status));