2#include "canvas/canvas_patch.hpp"
3#include "common/common.hpp"
4#include "pool/entity.hpp"
5#include "util/uuid.hpp"
6#include "util/uuid_vec.hpp"
13enum class RulesCheckCacheID { NONE, BOARD_IMAGE, NET_PINS };
24 static const RulesCheckCacheID
id = RulesCheckCacheID::BOARD_IMAGE;
34 static const RulesCheckCacheID
id = RulesCheckCacheID::NET_PINS;
39 const class Gate &gate;
42 UUIDVec instance_path;
48 std::vector<NetPin> pins;
50 using NetPins = std::map<UUID, NetInfo>;
51 const NetPins &get_net_pins()
const;
61 template <
typename T>
const T &get_cache()
63 return dynamic_cast<const T &
>(get_cache(
T::id));
68 std::map<RulesCheckCacheID, std::unique_ptr<RulesCheckCacheBase>> cache;
Definition: canvas_patch.hpp:6
Definition: idocument.hpp:5
A Pin represents a logical pin of a Unit.
Definition: unit.hpp:16
This class encapsulates a UUID and allows it to be uses as a value type.
Definition: uuid.hpp:16
defer< id, T > id
Definition: meta.hpp:585