Horizon
Loading...
Searching...
No Matches
rule_track_width.hpp
1#pragma once
2#include "common/common.hpp"
3#include "rules/rule.hpp"
4#include "rules/rule_match.hpp"
5
6namespace horizon {
7class RuleTrackWidth : public Rule {
8public:
9 static const auto id = RuleID::TRACK_WIDTH;
10 RuleID get_id() const override
11 {
12 return id;
13 }
14
15 class Widths {
16 public:
17 Widths();
18 Widths(const json &j);
19 json serialize() const;
20
21 uint64_t min = .1_mm;
22 uint64_t max = 10_mm;
23 uint64_t def = .2_mm;
24 };
25
26 RuleTrackWidth(const UUID &uu);
27 RuleTrackWidth(const UUID &uu, const json &j, const RuleImportMap &import_map);
28 json serialize() const override;
29
30 std::string get_brief(const class Block *block = nullptr, class IPool *pool = nullptr) const override;
31 bool is_match_all() const override;
32 bool can_export() const override;
33
34 RuleMatch match;
35 std::map<int, Widths> widths;
36};
37} // namespace horizon
A block is one level of hierarchy in the netlist.
Definition block.hpp:29
Definition ipool.hpp:15
Definition rule.hpp:38
Definition rule_match.hpp:9
Definition rule_track_width.hpp:15
Definition rule_track_width.hpp:7
Definition rule.hpp:58
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