C++ Client-Side SDK
LaunchDarkly SDK
evaluation_detail_internal.hpp
1 #pragma once
2 
3 #include <cstddef>
4 #include <functional>
5 #include <optional>
6 #include <ostream>
7 #include <utility>
8 
9 #include <launchdarkly/data/evaluation_reason.hpp>
10 #include <launchdarkly/value.hpp>
11 
12 namespace launchdarkly {
13 
30  public:
36  [[nodiscard]] launchdarkly::Value const& Value() const;
37 
43  [[nodiscard]] std::optional<std::size_t> VariationIndex() const;
44 
49  [[nodiscard]] std::optional<std::reference_wrapper<EvaluationReason const>>
50  Reason() const;
51 
53  std::optional<std::size_t> variation_index,
54  std::optional<EvaluationReason> reason);
55 
56  friend std::ostream& operator<<(std::ostream& out,
57  EvaluationDetailInternal const& detail);
58 
59  private:
60  launchdarkly::Value value_;
61  std::optional<std::size_t> variation_index_;
62  std::optional<EvaluationReason> reason_;
63 };
64 
65 bool operator==(EvaluationDetailInternal const& lhs,
66  EvaluationDetailInternal const& rhs);
67 bool operator!=(EvaluationDetailInternal const& lhs,
68  EvaluationDetailInternal const& rhs);
69 
70 } // namespace launchdarkly
Definition: evaluation_detail_internal.hpp:29
std::optional< std::reference_wrapper< EvaluationReason const > > Reason() const
Definition: evaluation_detail_internal.cpp:14
launchdarkly::Value const & Value() const
Definition: evaluation_detail_internal.cpp:5
std::optional< std::size_t > VariationIndex() const
Definition: evaluation_detail_internal.cpp:9
Definition: value.hpp:42