Get or create a node label ID (max 64 labels).
(&mut self, label: &str)
| 119 | |
| 120 | /// Get or create a node label ID (max 64 labels). |
| 121 | fn ensure_node_label(&mut self, label: &str) -> Option<u8> { |
| 122 | if let Some(&id) = self.node_label_to_id.get(label) { |
| 123 | return Some(id); |
| 124 | } |
| 125 | let id = self.node_label_names.len(); |
| 126 | if id >= 64 { |
| 127 | return None; // bitset limit |
| 128 | } |
| 129 | let id = id as u8; |
| 130 | self.node_label_to_id.insert(label.to_string(), id); |
| 131 | self.node_label_names.push(label.to_string()); |
| 132 | Some(id) |
| 133 | } |
| 134 | |
| 135 | /// Add a label to a node. |
| 136 | /// |