2#include "common/layer.hpp"
3#include "util/uuid.hpp"
4#include "util/layer_range.hpp"
10 enum class Type { INVALID, INT, BOOL, STRING,
UUID, DOUBLE,
LAYER_RANGE };
15 virtual Type get_type()
const
19 virtual ~PropertyValue()
26class PropertyValueInt :
public PropertyValue {
28 PropertyValueInt(
const int64_t &v = 0) : value(v)
31 Type get_type()
const override
39class PropertyValueDouble :
public PropertyValue {
41 PropertyValueDouble(
const double &v = 0) : value(v)
44 Type get_type()
const override
52class PropertyValueBool :
public PropertyValue {
54 PropertyValueBool(
bool v =
false) : value(v)
57 Type get_type()
const override
65class PropertyValueString :
public PropertyValue {
67 PropertyValueString(
const std::string &v =
"") : value(v)
70 Type get_type()
const override
78class PropertyValueUUID :
public PropertyValue {
80 PropertyValueUUID(
const UUID &v =
UUID()) : value(v)
83 Type get_type()
const override
91class PropertyValueLayerRange :
public PropertyValue {
96 Type get_type()
const override
98 return Type::LAYER_RANGE;
109 bool is_settable =
true;
110 bool is_visible =
true;
111 virtual ~PropertyMeta()
118 using PropertyMeta::PropertyMeta;
119 std::map<UUID, std::string> net_classes;
124 using PropertyMeta::PropertyMeta;
125 std::vector<Layer> layers;
Represent a contiguous set of PCB layers.
Definition pns_layerset.h:32
Definition layer_range.hpp:11
This class encapsulates a UUID and allows it to be uses as a value type.
Definition uuid.hpp:16