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

Class AttributeQualifierStringPrinter

base/attribute.cc:75–112  ·  view source on GitHub ↗

Visitor for appending string representation for different qualifier kinds.

Source from the content-addressed store, hash-verified

73
74// Visitor for appending string representation for different qualifier kinds.
75class AttributeQualifierStringPrinter {
76 public:
77 // String representation for the given qualifier is appended to output.
78 explicit AttributeQualifierStringPrinter(std::string* absl_nonnull output,
79 Kind type)
80 : output_(*output), type_(type) {}
81
82 absl::Status operator()(const Kind& ignored) const {
83 // Attributes are represented as a variant, with illegal attribute
84 // qualifiers represented with their type as the first alternative.
85 return absl::InvalidArgumentError(
86 absl::StrCat("Unsupported attribute qualifier ", KindToString(type_)));
87 }
88
89 absl::Status operator()(int64_t index) {
90 absl::StrAppend(&output_, index);
91 return absl::OkStatus();
92 }
93
94 absl::Status operator()(uint64_t index) {
95 absl::StrAppend(&output_, index);
96 return absl::OkStatus();
97 }
98
99 absl::Status operator()(bool bool_key) {
100 absl::StrAppend(&output_, (bool_key) ? "true" : "false");
101 return absl::OkStatus();
102 }
103
104 absl::Status operator()(const std::string& field) {
105 absl::StrAppend(&output_, field);
106 return absl::OkStatus();
107 }
108
109 private:
110 std::string& output_;
111 Kind type_;
112};
113
114struct AttributeQualifierTypeVisitor final {
115 Kind operator()(const Kind& type) const { return type; }

Callers 1

AsStringMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected