pub struct NodeRegistry { /* private fields */ }Expand description
Registry for node kinds.
Implementations§
Source§impl NodeRegistry
impl NodeRegistry
Sourcepub fn plan_canonicalize_kinds(&self, graph: &Graph) -> CanonicalizeKindsPlan
pub fn plan_canonicalize_kinds(&self, graph: &Graph) -> CanonicalizeKindsPlan
Plans a transaction that rewrites aliased node kinds to their canonical kind.
Sourcepub fn plan_migrate_nodes(&self, graph: &Graph) -> MigrateNodesPlan
pub fn plan_migrate_nodes(&self, graph: &Graph) -> MigrateNodesPlan
Plans a transaction that upgrades node payloads to the latest registered kind version.
This plan is intentionally best-effort:
- missing schema -> recorded as a report entry, no edits are produced
- missing migrator -> recorded as a report entry, no edits are produced
- migrator errors -> recorded as a report entry, no edits are produced for that node
The returned transaction may also include SetNodeKind ops for aliased kinds.
Source§impl NodeRegistry
impl NodeRegistry
Sourcepub fn register(&mut self, schema: NodeSchema)
pub fn register(&mut self, schema: NodeSchema)
Registers a schema.
Aliases are mapped to the schema’s canonical kind.
Sourcepub fn register_migrator(
&mut self,
kind: NodeKindKey,
migrator: Arc<dyn NodeKindMigrator>,
) -> &mut Self
pub fn register_migrator( &mut self, kind: NodeKindKey, migrator: Arc<dyn NodeKindMigrator>, ) -> &mut Self
Registers a per-kind data migrator.
The migrator is stored as an in-memory hook (not serialized as part of the schema data).
Sourcepub fn resolve_kind<'a>(&'a self, kind: &'a NodeKindKey) -> &'a NodeKindKey
pub fn resolve_kind<'a>(&'a self, kind: &'a NodeKindKey) -> &'a NodeKindKey
Resolves an input kind to a canonical kind (via aliases).
Sourcepub fn get(&self, kind: &NodeKindKey) -> Option<&NodeSchema>
pub fn get(&self, kind: &NodeKindKey) -> Option<&NodeSchema>
Looks up a schema by canonical kind key.
Sourcepub fn schemas(&self) -> impl Iterator<Item = &NodeSchema>
pub fn schemas(&self) -> impl Iterator<Item = &NodeSchema>
Iterates all registered schemas in deterministic order (by kind key).
Sourcepub fn view_descriptor(
&self,
kind: &NodeKindKey,
) -> Option<NodeKindViewDescriptor>
pub fn view_descriptor( &self, kind: &NodeKindKey, ) -> Option<NodeKindViewDescriptor>
Returns the adapter-facing descriptor for a node kind or alias.
Sourcepub fn view_descriptors(&self) -> Vec<NodeKindViewDescriptor>
pub fn view_descriptors(&self) -> Vec<NodeKindViewDescriptor>
Returns adapter-facing node-kind descriptors in deterministic order.
Sourcepub fn instantiate_node(
&self,
kind: &NodeKindKey,
pos: CanvasPoint,
) -> Result<NodeInstantiation, NodeInstantiationError>
pub fn instantiate_node( &self, kind: &NodeKindKey, pos: CanvasPoint, ) -> Result<NodeInstantiation, NodeInstantiationError>
Instantiates a node kind or alias with freshly allocated node and port ids.
Sourcepub fn instantiate_node_with_ids(
&self,
kind: &NodeKindKey,
node_id: NodeId,
pos: CanvasPoint,
port_ids: impl IntoIterator<Item = PortId>,
) -> Result<NodeInstantiation, NodeInstantiationError>
pub fn instantiate_node_with_ids( &self, kind: &NodeKindKey, node_id: NodeId, pos: CanvasPoint, port_ids: impl IntoIterator<Item = PortId>, ) -> Result<NodeInstantiation, NodeInstantiationError>
Instantiates a node kind or alias with caller-provided ids.
Trait Implementations§
Source§impl Clone for NodeRegistry
impl Clone for NodeRegistry
Source§fn clone(&self) -> NodeRegistry
fn clone(&self) -> NodeRegistry
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more