MCPcopy Create free account
hub / github.com/cel-expr/cel-cpp / JsonDebugStringState

Class JsonDebugStringState

internal/json.cc:1648–1725  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1646}
1647
1648class JsonDebugStringState final {
1649 public:
1650 JsonDebugStringState(const JsonAccessor* absl_nonnull accessor,
1651 std::string* absl_nonnull output)
1652 : accessor_(accessor), output_(output) {}
1653
1654 void ValueDebugString(const google::protobuf::MessageLite& message) {
1655 const auto kind_case = accessor_->GetKindCase(message);
1656 switch (kind_case) {
1657 case google::protobuf::Value::KIND_NOT_SET:
1658 ABSL_FALLTHROUGH_INTENDED;
1659 case google::protobuf::Value::kNullValue:
1660 output_->append("null");
1661 break;
1662 case google::protobuf::Value::kBoolValue:
1663 if (accessor_->GetBoolValue(message)) {
1664 output_->append("true");
1665 } else {
1666 output_->append("false");
1667 }
1668 break;
1669 case google::protobuf::Value::kNumberValue:
1670 output_->append(
1671 JsonNumberDebugString(accessor_->GetNumberValue(message)));
1672 break;
1673 case google::protobuf::Value::kStringValue:
1674 output_->append(JsonStringDebugString(
1675 accessor_->GetStringValue(message, scratch_)));
1676 break;
1677 case google::protobuf::Value::kListValue:
1678 ListValueDebugString(accessor_->GetListValue(message));
1679 break;
1680 case google::protobuf::Value::kStructValue:
1681 StructDebugString(accessor_->GetStructValue(message));
1682 break;
1683 default:
1684 // Should not get here, but if for some terrible reason
1685 // `google.protobuf.Value` is expanded, just skip.
1686 break;
1687 }
1688 }
1689
1690 void ListValueDebugString(const google::protobuf::MessageLite& message) {
1691 const int size = accessor_->ValuesSize(message);
1692 output_->push_back('[');
1693 for (int i = 0; i < size; ++i) {
1694 if (i > 0) {
1695 output_->append(", ");
1696 }
1697 ValueDebugString(accessor_->Values(message, i));
1698 }
1699 output_->push_back(']');
1700 }
1701
1702 void StructDebugString(const google::protobuf::MessageLite& message) {
1703 const int size = accessor_->FieldsSize(message);
1704 std::string key_scratch;
1705 well_known_types::StringValue key;

Callers 3

JsonDebugStringFunction · 0.85
JsonListDebugStringFunction · 0.85
JsonMapDebugStringFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected