Horizon
Loading...
Searching...
No Matches
symbol_rules.hpp
1#pragma once
2#include "nlohmann/json_fwd.hpp"
3#include "rule_symbol_checks.hpp"
4#include "rules/rules.hpp"
5#include "util/uuid.hpp"
6
7namespace horizon {
8using json = nlohmann::json;
9
10class SymbolRules : public Rules {
11public:
13
14 void load_from_json(const json &j) override;
15 RulesCheckResult check(RuleID id, const class Symbol &sym) const;
16 json serialize() const override;
17 std::vector<RuleID> get_rule_ids() const override;
18 const Rule &get_rule(RuleID id) const override;
19 const Rule &get_rule(RuleID id, const UUID &uu) const override;
20 std::map<UUID, const Rule *> get_rules(RuleID id) const override;
21 void remove_rule(RuleID id, const UUID &uu) override;
22 Rule &add_rule(RuleID id) override;
23
24private:
25 RuleSymbolChecks rule_symbol_checks;
26
27 RulesCheckResult check_symbol(const class Symbol &sym) const;
28};
29} // namespace horizon
Definition rule_symbol_checks.hpp:6
Definition rule.hpp:58
Definition rules.hpp:38
Definition rules.hpp:54
Definition symbol_rules.hpp:10
Definition symbol.hpp:72
This class encapsulates a UUID and allows it to be uses as a value type.
Definition uuid.hpp:16
a class to store JSON values
Definition json.hpp:177
basic_json<> json
default JSON class
Definition json_fwd.hpp:62