25#include <absl/status/status.h>
26#include <absl/status/statusor.h>
27#include <nlohmann/json_fwd.hpp>
83absl::StatusOr<nlohmann::json>
StatusToJson(
const absl::Status& status);
90absl::StatusOr<absl::Status>
StatusFromJson(
const nlohmann::json& value);
94 "type.a11.dev/status-details+json";
std::uint16_t StatusCodeToWebSocket(absl::StatusCode code)
Maps a canonical status code to its WebSocket close code.
Definition status.cc:146
absl::StatusCode StatusCodeFromWebSocket(std::uint16_t close_code)
Maps a WebSocket close code to a canonical status code.
Definition status.cc:91
nlohmann::json StatusDetails(const absl::Status &status)
Extracts the structured-details payload from a status.
Definition status.cc:171
constexpr std::string_view kStatusDetailsPayloadUrl
Type URL identifying A11's status-details payload.
Definition status.h:93
absl::StatusOr< nlohmann::json > StatusToJson(const absl::Status &status)
Serializes a status (code, message, details) to JSON.
Definition status.cc:186
absl::Status MakeStatus(absl::StatusCode code, std::string message, nlohmann::json details)
Builds a status carrying an A11 structured-details payload.
Definition status.cc:157
absl::StatusCode StatusCodeFromHttp(int http_code)
Maps an HTTP status code to a canonical status code.
Definition status.cc:23
int StatusCodeToHttp(absl::StatusCode code)
Maps a canonical status code to its HTTP status code.
Definition status.cc:55
absl::StatusOr< absl::Status > StatusFromJson(const nlohmann::json &value)
Reconstructs a status from its JSON representation.
Definition status.cc:197
Future< T > SubmitWithCancellationHook(absl::AnyInvocable< absl::StatusOr< T >() && > work, std::function< void()> cancellation_hook, thread::TreeOptions tree_options)
Run work on A11's fiber pool with application-specific cancellation.
Definition executor.h:30