mirror of https://github.com/KLayout/klayout.git
40 lines
1.1 KiB
Cap'n Proto
40 lines
1.1 KiB
Cap'n Proto
@0xa344c0f52014bff4;
|
|
|
|
using Cxx = import "/capnp/c++.capnp";
|
|
$Cxx.namespace("stream::propertySet");
|
|
|
|
using Variant = import "variant.capnp".Variant;
|
|
|
|
# The name of a shape or instance property
|
|
struct PropertyName
|
|
{
|
|
# A "namespaceID" of 0 means "no namespace". Otherwise it's a base-1 index in the
|
|
# property namespace table in "header::propertyNamesTable::namespaces".
|
|
# The namespace is intended as a kind of prefix, uniquely identifying the name
|
|
# of the property, so that different owners can use the same name as long as the
|
|
# own the namespace.
|
|
namespaceId @0 :UInt64;
|
|
|
|
# The "name":
|
|
# The property name does not need to be a string, but can be any type,
|
|
# specifically integer values. This way, properties can map GDS user properties.
|
|
name @1 :Variant;
|
|
}
|
|
|
|
# A pair of name and value
|
|
struct NamedValue
|
|
{
|
|
# The namdId is a base-0 index into Library::propertyNamesTable
|
|
nameId @0 :UInt64;
|
|
|
|
# The value associated with the name
|
|
value @1 :Variant;
|
|
}
|
|
|
|
# A set of name/value pairs forming the set of properties for a shape or instance
|
|
struct PropertySet
|
|
{
|
|
properties @0 :List(NamedValue);
|
|
}
|
|
|