40#include <absl/status/status.h>
41#include <absl/status/statusor.h>
42#include <nlohmann/json_fwd.hpp>
84absl::Status
MakeStatus(absl::StatusCode code,
const std::string& message,
85 const nlohmann::json& details);
98absl::StatusOr<nlohmann::json>
StatusToJson(
const absl::Status& status);
119 "type.a11.dev/status-details+json";
std::string value
Definition discover.cc:114
std::uint16_t StatusCodeToWebSocket(absl::StatusCode code)
Maps a canonical status code to its WebSocket close code.
Definition status.cc:160
absl::StatusCode StatusCodeFromWebSocket(std::uint16_t close_code)
Maps a WebSocket close code to a canonical status code.
Definition status.cc:105
nlohmann::json StatusDetails(const absl::Status &status)
Extracts the structured-details payload from a status.
Definition status.cc:191
constexpr std::string_view kStatusDetailsPayloadUrl
Type URL identifying A11's status-details payload.
Definition status.h:118
absl::StatusOr< nlohmann::json > StatusToJson(const absl::Status &status)
Serializes a status (code, message, details) to JSON.
Definition status.cc:206
absl::Status MakeStatus(absl::StatusCode code, const std::string &message, const nlohmann::json &details)
Builds a status carrying an A11 structured-details payload.
Definition status.cc:174
absl::StatusCode StatusCodeFromHttp(int http_code)
Maps an HTTP status code to a canonical status code.
Definition status.cc:36
nlohmann::json StatusToJsonOrEmptyDetails(const absl::Status &status)
Serializes a status to JSON, never failing.
Definition status.cc:214
int StatusCodeToHttp(absl::StatusCode code)
Maps a canonical status code to its HTTP status code.
Definition status.cc:69
absl::StatusOr< absl::Status > StatusFromJson(const nlohmann::json &value)
Reconstructs a status from its JSON representation.
Definition status.cc:225