14#ifndef OR_TOOLS_BASE_STATUS_BUILDER_H_
15#define OR_TOOLS_BASE_STATUS_BUILDER_H_
21#include "absl/status/status.h"
22#include "absl/strings/str_cat.h"
29 : base_status_(code, {}) {}
34 operator absl::Status()
const {
35 const std::string annotation = ss_.str();
36 if (annotation.empty()) {
39 if (base_status_.message().empty()) {
40 return absl::Status(base_status_.code(), annotation);
42 const std::string annotated_message =
43 absl::StrCat(base_status_.message(),
"; ", annotation);
44 return absl::Status(base_status_.code(), annotated_message);
56 const absl::Status base_status_;
57 std::ostringstream ss_;
StatusBuilder & operator<<(const T &t)
StatusBuilder(const absl::StatusCode code)
StatusBuilder(const absl::Status status)
StatusBuilder & SetAppend()
StatusBuilder ResourceExhaustedErrorBuilder()
StatusBuilder UnknownErrorBuilder()
StatusBuilder InternalErrorBuilder()
StatusBuilder UnimplementedErrorBuilder()
StatusBuilder UnavailableErrorBuilder()
StatusBuilder DataLossErrorBuilder()
StatusBuilder UnauthenticatedErrorBuilder()
StatusBuilder AbortedErrorBuilder()
StatusBuilder AlreadyExistsErrorBuilder()
StatusBuilder OutOfRangeErrorBuilder()
StatusBuilder CancelledErrorBuilder()
StatusBuilder PermissionDeniedErrorBuilder()
StatusBuilder InvalidArgumentErrorBuilder()
StatusBuilder DeadlineExceededErrorBuilder()
StatusBuilder FailedPreconditionErrorBuilder()
StatusBuilder NotFoundErrorBuilder()