Add an internal helper for logging (upcoming).

PiperOrigin-RevId: 452134803
Change-Id: I8660df850ab537c441399545b25eb32399b2a3ef
This commit is contained in:
Greg Falcon
2022-05-31 14:00:42 -07:00
committed by Copybara-Service
parent b957f0ccd0
commit a567153787
2 changed files with 21 additions and 0 deletions

View File

@@ -69,6 +69,15 @@ struct StatusRep {
};
absl::StatusCode MapToLocalCode(int value);
// If `status` is not OK, returns a pointer to a newly-allocated string with the
// given `prefix`, suitable for output as an error message in assertion/CHECK()
// failures. Otherwise returns nullptr.
//
// This is an internal implementation detail for Abseil logging.
std::string* MakeCheckFailString(const absl::Status& status,
const char* prefix);
} // namespace status_internal
ABSL_NAMESPACE_END

View File

@@ -599,5 +599,17 @@ Status ErrnoToStatus(int error_number, absl::string_view message) {
MessageForErrnoToStatus(error_number, message));
}
namespace status_internal {
std::string* MakeCheckFailString(const absl::Status& status,
const char* prefix) {
if (status.ok()) { return nullptr; }
return new std::string(
absl::StrCat(prefix, " (",
status.ToString(StatusToStringMode::kWithEverything), ")"));
}
} // namespace status_internal
ABSL_NAMESPACE_END
} // namespace absl