2 #include "nlohmann/json_fwd.hpp"
3 #include "rule_clearance_copper.hpp"
4 #include "rule_clearance_copper_other.hpp"
5 #include "rule_clearance_silk_exp_copper.hpp"
6 #include "rule_diffpair.hpp"
7 #include "rule_hole_size.hpp"
8 #include "rule_parameters.hpp"
9 #include "rule_plane.hpp"
10 #include "rule_track_width.hpp"
11 #include "rule_via.hpp"
12 #include "rule_preflight_checks.hpp"
13 #include "rule_clearance_copper_keepout.hpp"
14 #include "rules/rules.hpp"
15 #include "util/uuid.hpp"
24 void load_from_json(
const json &j);
27 json serialize()
const;
28 std::set<RuleID> get_rule_ids()
const;
29 Rule *get_rule(RuleID
id);
30 Rule *get_rule(RuleID
id,
const UUID &uu);
31 std::map<UUID, Rule *> get_rules(RuleID
id);
32 void remove_rule(RuleID
id,
const UUID &uu);
33 Rule *add_rule(RuleID
id);
34 void cleanup(
const class Block *block);
36 uint64_t get_default_track_width(
class Net *net,
int layer);
45 UUID get_via_padstack_uuid(
class Net *net);
46 const ParameterSet &get_via_parameter_set(
class Net *net);
51 std::map<UUID, RuleHoleSize> rule_hole_size;
52 std::map<UUID, RuleTrackWidth> rule_track_width;
53 std::map<UUID, RuleClearanceCopper> rule_clearance_copper;
54 std::map<UUID, RuleVia> rule_via;
55 std::map<UUID, RuleClearanceCopperOther> rule_clearance_copper_other;
56 std::map<UUID, RulePlane> rule_plane;
57 std::map<UUID, RuleDiffpair> rule_diffpair;
58 std::map<UUID, RuleClearanceCopperKeepout> rule_clearance_copper_keepout;
67 check_status_cb_t status_cb);
69 check_status_cb_t status_cb);
72 check_status_cb_t status_cb);