C++ Server-Side SDK
LaunchDarkly SDK
Loading...
Searching...
No Matches
rules.hpp
1#pragma once
2
3#include "../data_interfaces/store/istore.hpp"
4#include "evaluation_error.hpp"
5#include "evaluation_stack.hpp"
6
7#include <launchdarkly/context.hpp>
8#include <launchdarkly/data_model/flag.hpp>
9#include <launchdarkly/data_model/segment.hpp>
10
11#include <tl/expected.hpp>
12
13#include <string>
14
15namespace launchdarkly::server_side::evaluation {
16
17[[nodiscard]] tl::expected<bool, Error> Match(
18 data_model::Flag::Rule const&,
19 Context const&,
20 data_interfaces::IStore const& store,
21 EvaluationStack& stack);
22
23[[nodiscard]] tl::expected<bool, Error> Match(data_model::Clause const&,
24 Context const&,
25 data_interfaces::IStore const&,
26 EvaluationStack&);
27
28[[nodiscard]] tl::expected<bool, Error> Match(
29 data_model::Segment::Rule const& rule,
30 Context const& context,
31 data_interfaces::IStore const& store,
32 EvaluationStack& stack,
33 std::string const& key,
34 std::string const& salt);
35
36[[nodiscard]] tl::expected<bool, Error> MatchSegment(
37 data_model::Clause const&,
38 Context const&,
39 data_interfaces::IStore const&,
40 EvaluationStack& stack);
41
42[[nodiscard]] tl::expected<bool, Error> MatchNonSegment(
43 data_model::Clause const&,
44 Context const&);
45
46[[nodiscard]] tl::expected<bool, Error> Contains(
47 data_model::Segment const&,
48 Context const&,
49 data_interfaces::IStore const& store,
50 EvaluationStack& stack);
51
52[[nodiscard]] bool MaybeNegate(data_model::Clause const& clause, bool value);
53
54[[nodiscard]] bool IsTargeted(Context const&,
55 std::vector<std::string> const&,
56 std::vector<data_model::Segment::Target> const&);
57
58[[nodiscard]] bool IsUser(Context const& context);
59
60} // namespace launchdarkly::server_side::evaluation