klayout/src/plugins/streamers/lstream/db_plugin/capnp_src/propertySet.capnp

40 lines
1.1 KiB
Cap'n Proto
Raw Normal View History

2025-11-07 00:44:08 +01:00
@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);
}