From 2c6664b09364029c3d7bdb056b2c13e34842e824 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Agust=C3=ADn=20Borgna?= Date: Wed, 30 Oct 2024 14:50:38 +0000 Subject: [PATCH] feat: `HugrMut::remove_metadata` --- hugr-core/src/hugr/hugrmut.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/hugr-core/src/hugr/hugrmut.rs b/hugr-core/src/hugr/hugrmut.rs index b608d632f..e7e2df2f1 100644 --- a/hugr-core/src/hugr/hugrmut.rs +++ b/hugr-core/src/hugr/hugrmut.rs @@ -48,6 +48,19 @@ pub trait HugrMut: HugrMutInternals { *entry = metadata.into(); } + /// Remove a metadata entry associated with a node. + /// + /// # Panics + /// + /// If the node is not in the graph. + fn remove_metadata(&mut self, node: Node, key: impl AsRef) { + panic_invalid_node(self, node); + let node_meta = self.hugr_mut().metadata.get_mut(node.pg_index()); + if let Some(node_meta) = node_meta { + node_meta.remove(key.as_ref()); + } + } + /// Retrieve the complete metadata map for a node. fn take_node_metadata(&mut self, node: Node) -> Option { if !self.valid_node(node) {