@@ -27,13 +27,13 @@ bool EvaluationReason::InExperiment() const {
2727 return in_experiment_;
2828}
2929
30- std::optional< enum EvaluationReason::BigSegmentsStatus>
30+ enum EvaluationReason::BigSegmentsStatus
3131EvaluationReason::BigSegmentsStatus () const {
3232 return big_segments_status_;
3333}
3434
3535std::optional<std::string> EvaluationReason::BigSegmentStatus () const {
36- return std:: nullopt ;
36+ return big_segment_status_ ;
3737}
3838
3939EvaluationReason::EvaluationReason (
@@ -43,51 +43,93 @@ EvaluationReason::EvaluationReason(
4343 std::optional<std::string> rule_id,
4444 std::optional<std::string> prerequisite_key,
4545 bool in_experiment,
46- std::optional< enum BigSegmentsStatus> big_segments_status)
46+ enum BigSegmentsStatus big_segments_status)
4747 : kind_(kind),
4848 error_kind_ (error_kind),
4949 rule_index_(rule_index),
5050 rule_id_(std::move(rule_id)),
5151 prerequisite_key_(std::move(prerequisite_key)),
5252 in_experiment_(in_experiment),
53- big_segments_status_(std::move(big_segments_status)) {}
53+ big_segments_status_(big_segments_status),
54+ big_segment_status_(std::nullopt ) {}
55+
56+ EvaluationReason::EvaluationReason (
57+ enum Kind kind,
58+ std::optional<enum ErrorKind> error_kind,
59+ std::optional<std::size_t > rule_index,
60+ std::optional<std::string> rule_id,
61+ std::optional<std::string> prerequisite_key,
62+ bool in_experiment,
63+ std::optional<std::string> big_segment_status)
64+ : kind_(kind),
65+ error_kind_(error_kind),
66+ rule_index_(rule_index),
67+ rule_id_(std::move(rule_id)),
68+ prerequisite_key_(std::move(prerequisite_key)),
69+ in_experiment_(in_experiment),
70+ big_segments_status_(BigSegmentsStatus::kNone ),
71+ big_segment_status_(std::move(big_segment_status)) {}
5472
5573EvaluationReason::EvaluationReason (enum ErrorKind error_kind)
5674 : EvaluationReason(Kind::kError ,
5775 error_kind,
58- std::nullopt ,
59- std::nullopt ,
60- std::nullopt ,
61- false ,
62- std:: nullopt ) {}
76+ /* rule_index= */ std::nullopt ,
77+ /* rule_id= */ std::nullopt ,
78+ /* prerequisite_key= */ std::nullopt ,
79+ /* in_experiment= */ false ,
80+ BigSegmentsStatus:: kNone ) {}
6381
6482EvaluationReason EvaluationReason::Off () {
65- return {Kind::kOff , std::nullopt , std::nullopt , std::nullopt ,
66- std::nullopt , false , std::nullopt };
83+ return {Kind::kOff ,
84+ /* error_kind= */ std::nullopt ,
85+ /* rule_index= */ std::nullopt ,
86+ /* rule_id= */ std::nullopt ,
87+ /* prerequisite_key= */ std::nullopt ,
88+ /* in_experiment= */ false ,
89+ BigSegmentsStatus::kNone };
6790}
6891
6992EvaluationReason EvaluationReason::PrerequisiteFailed (
7093 std::string prerequisite_key) {
71- return {
72- Kind::kPrerequisiteFailed , std::nullopt , std::nullopt , std::nullopt ,
73- std::move (prerequisite_key), false , std::nullopt };
94+ return {Kind::kPrerequisiteFailed ,
95+ /* error_kind= */ std::nullopt ,
96+ /* rule_index= */ std::nullopt ,
97+ /* rule_id= */ std::nullopt ,
98+ std::move (prerequisite_key),
99+ /* in_experiment= */ false ,
100+ BigSegmentsStatus::kNone };
74101}
75102
76103EvaluationReason EvaluationReason::TargetMatch () {
77- return {Kind::kTargetMatch , std::nullopt , std::nullopt , std::nullopt ,
78- std::nullopt , false , std::nullopt };
104+ return {Kind::kTargetMatch ,
105+ /* error_kind= */ std::nullopt ,
106+ /* rule_index= */ std::nullopt ,
107+ /* rule_id= */ std::nullopt ,
108+ /* prerequisite_key= */ std::nullopt ,
109+ /* in_experiment= */ false ,
110+ BigSegmentsStatus::kNone };
79111}
80112
81113EvaluationReason EvaluationReason::Fallthrough (bool in_experiment) {
82- return {Kind::kFallthrough , std::nullopt , std::nullopt , std::nullopt ,
83- std::nullopt , in_experiment, std::nullopt };
114+ return {Kind::kFallthrough ,
115+ /* error_kind= */ std::nullopt ,
116+ /* rule_index= */ std::nullopt ,
117+ /* rule_id= */ std::nullopt ,
118+ /* prerequisite_key= */ std::nullopt ,
119+ in_experiment,
120+ BigSegmentsStatus::kNone };
84121}
85122
86123EvaluationReason EvaluationReason::RuleMatch (std::size_t rule_index,
87124 std::optional<std::string> rule_id,
88125 bool in_experiment) {
89- return {Kind::kRuleMatch , std::nullopt , rule_index, std::move (rule_id),
90- std::nullopt , in_experiment, std::nullopt };
126+ return {Kind::kRuleMatch ,
127+ /* error_kind= */ std::nullopt ,
128+ rule_index,
129+ std::move (rule_id),
130+ /* prerequisite_key= */ std::nullopt ,
131+ in_experiment,
132+ BigSegmentsStatus::kNone };
91133}
92134
93135EvaluationReason EvaluationReason::MalformedFlag () {
@@ -110,8 +152,9 @@ std::ostream& operator<<(std::ostream& out, EvaluationReason const& reason) {
110152 out << " prerequisiteKey: " << reason.prerequisite_key_ .value ();
111153 }
112154 out << " inExperiment: " << reason.in_experiment_ ;
113- if (reason.big_segments_status_ .has_value ()) {
114- out << " bigSegmentsStatus: " << reason.big_segments_status_ .value ();
155+ if (reason.big_segments_status_ !=
156+ EvaluationReason::BigSegmentsStatus::kNone ) {
157+ out << " bigSegmentsStatus: " << reason.big_segments_status_ ;
115158 }
116159 out << " }" ;
117160 return out;
@@ -121,6 +164,7 @@ bool operator==(EvaluationReason const& lhs, EvaluationReason const& rhs) {
121164 return lhs.Kind () == rhs.Kind () && lhs.ErrorKind () == rhs.ErrorKind () &&
122165 lhs.InExperiment () == rhs.InExperiment () &&
123166 lhs.BigSegmentsStatus () == rhs.BigSegmentsStatus () &&
167+ lhs.BigSegmentStatus () == rhs.BigSegmentStatus () &&
124168 lhs.PrerequisiteKey () == rhs.PrerequisiteKey () &&
125169 lhs.RuleId () == rhs.RuleId () && lhs.RuleIndex () == rhs.RuleIndex ();
126170}
@@ -158,6 +202,9 @@ std::ostream& operator<<(
158202 std::ostream& out,
159203 enum EvaluationReason::BigSegmentsStatus const & status) {
160204 switch (status) {
205+ case EvaluationReason::BigSegmentsStatus::kNone :
206+ out << " NONE" ;
207+ break ;
161208 case EvaluationReason::BigSegmentsStatus::kHealthy :
162209 out << " HEALTHY" ;
163210 break ;
0 commit comments