Materializes an ExtensionNode; registered by name through
EvaluatorOptions.extensions and called under the Evaluator's kernel.
The Evaluator caches the result by the node's content address, so it must
depend only on input.
Ownership: children are borrowed from the Evaluator's cache. Do not
dispose them or keep them past the call (a bounded cache may evict them).
Return either a fresh shape or one of children unchanged; the Evaluator
owns and disposes the result, and reference-counts handles so a returned
child is freed once. Never return a handle owned elsewhere, such as a
borrowed sub-shape from getFaces.
Return an Err for expected failures; a throw escapes evaluate() like a
throw from any built-in evaluator.
Materializes an ExtensionNode; registered by name through
EvaluatorOptions.extensionsand called under the Evaluator's kernel.The Evaluator caches the result by the node's content address, so it must depend only on
input.Ownership:
childrenare borrowed from the Evaluator's cache. Do not dispose them or keep them past the call (a bounded cache may evict them). Return either a fresh shape or one ofchildrenunchanged; the Evaluator owns and disposes the result, and reference-counts handles so a returned child is freed once. Never return a handle owned elsewhere, such as a borrowed sub-shape fromgetFaces.Return an
Errfor expected failures; a throw escapesevaluate()like a throw from any built-in evaluator.