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

Class AttributeQualifier

base/attribute.h:37–125  ·  view source on GitHub ↗

AttributeQualifier represents a segment in attribute resolutuion path. A segment can be qualified by values of following types: string/int64_t/uint64_t/bool.

Source from the content-addressed store, hash-verified

35// attribute resolutuion path. A segment can be qualified by values of
36// following types: string/int64_t/uint64_t/bool.
37class AttributeQualifier final {
38 private:
39 struct ComparatorVisitor;
40
41 using Variant = absl::variant<Kind, int64_t, uint64_t, std::string, bool>;
42
43 public:
44 static AttributeQualifier OfInt(int64_t value) {
45 return AttributeQualifier(absl::in_place_type<int64_t>, std::move(value));
46 }
47
48 static AttributeQualifier OfUint(uint64_t value) {
49 return AttributeQualifier(absl::in_place_type<uint64_t>, std::move(value));
50 }
51
52 static AttributeQualifier OfString(std::string value) {
53 return AttributeQualifier(absl::in_place_type<std::string>,
54 std::move(value));
55 }
56
57 static AttributeQualifier OfBool(bool value) {
58 return AttributeQualifier(absl::in_place_type<bool>, std::move(value));
59 }
60
61 AttributeQualifier() = default;
62
63 AttributeQualifier(const AttributeQualifier&) = default;
64 AttributeQualifier(AttributeQualifier&&) = default;
65
66 AttributeQualifier& operator=(const AttributeQualifier&) = default;
67 AttributeQualifier& operator=(AttributeQualifier&&) = default;
68
69 Kind kind() const;
70
71 // Family of Get... methods. Return values if requested type matches the
72 // stored one.
73 absl::optional<int64_t> GetInt64Key() const {
74 return absl::holds_alternative<int64_t>(value_)
75 ? absl::optional<int64_t>(absl::get<1>(value_))
76 : absl::nullopt;
77 }
78
79 absl::optional<uint64_t> GetUint64Key() const {
80 return absl::holds_alternative<uint64_t>(value_)
81 ? absl::optional<uint64_t>(absl::get<2>(value_))
82 : absl::nullopt;
83 }
84
85 absl::optional<absl::string_view> GetStringKey() const {
86 return absl::holds_alternative<std::string>(value_)
87 ? absl::optional<absl::string_view>(absl::get<3>(value_))
88 : absl::nullopt;
89 }
90
91 absl::optional<bool> GetBoolKey() const {
92 return absl::holds_alternative<bool>(value_)
93 ? absl::optional<bool>(absl::get<4>(value_))
94 : absl::nullopt;

Callers 6

OfIntMethod · 0.85
OfUintMethod · 0.85
OfStringMethod · 0.85
OfBoolMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected