File indexing completed on 2025-12-16 09:40:53
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019 #ifndef ABSL_LOG_INTERNAL_STRUCTURED_H_
0020 #define ABSL_LOG_INTERNAL_STRUCTURED_H_
0021
0022 #include <ostream>
0023
0024 #include "absl/base/config.h"
0025 #include "absl/log/internal/log_message.h"
0026 #include "absl/strings/string_view.h"
0027
0028 namespace absl {
0029 ABSL_NAMESPACE_BEGIN
0030 namespace log_internal {
0031
0032 class ABSL_MUST_USE_RESULT AsLiteralImpl final {
0033 public:
0034 explicit AsLiteralImpl(absl::string_view str) : str_(str) {}
0035 AsLiteralImpl(const AsLiteralImpl&) = default;
0036 AsLiteralImpl& operator=(const AsLiteralImpl&) = default;
0037
0038 private:
0039 absl::string_view str_;
0040
0041 friend std::ostream& operator<<(std::ostream& os, AsLiteralImpl as_literal) {
0042 return os << as_literal.str_;
0043 }
0044 void AddToMessage(log_internal::LogMessage& m) {
0045 m.CopyToEncodedBuffer<log_internal::LogMessage::StringType::kLiteral>(str_);
0046 }
0047 friend log_internal::LogMessage& operator<<(log_internal::LogMessage& m,
0048 AsLiteralImpl as_literal) {
0049 as_literal.AddToMessage(m);
0050 return m;
0051 }
0052 };
0053
0054 }
0055 ABSL_NAMESPACE_END
0056 }
0057
0058 #endif