MCPcopy Create free account
hub / github.com/hashintel/hash / intern

Method intern

libs/@local/hashql/core/src/intern/map.rs:571–576  ·  view source on GitHub ↗

Provisions an ID and interns a partial representation created with that ID. This method is particularly useful for creating recursive data structures. It: 1. Provisions a new unique ID 2. Passes that ID to the provided closure 3. Interns the partial representation returned by the closure with the provisioned ID This is the most convenient way to create self-referential structures, as you can use

(&self, closure: impl FnOnce(Provisioned<T::Id>) -> T::Partial)

Source from the content-addressed store, hash-verified

569 /// assert_eq!(tail.next, Some(head.id())); // Tail points back to head!
570 /// ```
571 pub fn intern(&self, closure: impl FnOnce(Provisioned<T::Id>) -> T::Partial) -> T {
572 let id = self.provision();
573 let partial = closure(id);
574
575 self.intern_provisioned(id, partial)
576 }
577
578 /// Retrieves a value by its ID.
579 ///

Callers 15

intern_moduleMethod · 0.45
recursive_structuresFunction · 0.45
intern_symbolMethod · 0.45
partialMethod · 0.45
simplify_recursive_listFunction · 0.45
simplify_recursive_dictFunction · 0.45
join_recursive_unionsFunction · 0.45
simplify_recursive_unionFunction · 0.45
recursiveFunction · 0.45

Calls 2

provisionMethod · 0.45
intern_provisionedMethod · 0.45

Tested by 15

recursive_structuresFunction · 0.36
simplify_recursive_listFunction · 0.36
simplify_recursive_dictFunction · 0.36
join_recursive_unionsFunction · 0.36
simplify_recursive_unionFunction · 0.36
recursiveFunction · 0.36
instantiate_recursiveFunction · 0.36
instantiated_nestedFunction · 0.36