pub struct NodeIndex { /* private fields */ }Expand description
An index of addressable nodes in one loaded distribution.
Implementations§
Source§impl NodeIndex
impl NodeIndex
Sourcepub fn v4_file(file: &IRFile) -> Result<Self, NodeResolutionError>
pub fn v4_file(file: &IRFile) -> Result<Self, NodeResolutionError>
Index a complete V4 file using its exact normalized format version.
Sourcepub fn v4_file_with_selector(
file: &IRFile,
artifact: ArtifactSelector,
) -> Result<Self, NodeResolutionError>
pub fn v4_file_with_selector( file: &IRFile, artifact: ArtifactSelector, ) -> Result<Self, NodeResolutionError>
Index a complete V4 file under a package selector or workspace alias.
Sourcepub fn v4(distribution: &Distribution) -> Result<Self, NodeResolutionError>
pub fn v4(distribution: &Distribution) -> Result<Self, NodeResolutionError>
Index a normalized V4 distribution and all currently supported semantic nodes.
Sourcepub fn v4_with_selector(
distribution: &Distribution,
artifact: ArtifactSelector,
) -> Result<Self, NodeResolutionError>
pub fn v4_with_selector( distribution: &Distribution, artifact: ArtifactSelector, ) -> Result<Self, NodeResolutionError>
Index a V4 distribution under its package name or an exact workspace alias.
Sourcepub fn v3(
distribution: &Distribution,
artifact: ArtifactSelector,
) -> Result<Self, NodeResolutionError>
pub fn v3( distribution: &Distribution, artifact: ArtifactSelector, ) -> Result<Self, NodeResolutionError>
Index one Classic V3 library under an explicit artifact selector.
Sourcepub fn v3_json(bytes: &[u8]) -> Result<Self, NodeResolutionError>
pub fn v3_json(bytes: &[u8]) -> Result<Self, NodeResolutionError>
Index exact Classic V3 JSON, preserving its declared release.
Sourcepub fn resolve(
&self,
address: &NodeUri,
) -> Result<IndexedNodeKind, NodeResolutionError>
pub fn resolve( &self, address: &NodeUri, ) -> Result<IndexedNodeKind, NodeResolutionError>
Resolve one address in this loaded distribution. Pinned addresses require an immutable snapshot resolver and are not silently applied to current.
pub fn resolve_node( &self, address: &NodeUri, ) -> Result<&ResolvedNode, NodeResolutionError>
Sourcepub fn addresses(&self) -> impl Iterator<Item = &NodeUri>
pub fn addresses(&self) -> impl Iterator<Item = &NodeUri>
Enumerate canonical current addresses in this distribution.
Sourcepub fn nodes(&self) -> impl Iterator<Item = (&NodeUri, &ResolvedNode)>
pub fn nodes(&self) -> impl Iterator<Item = (&NodeUri, &ResolvedNode)>
Enumerate occurrences with their canonical addresses, including equal semantic subtrees at distinct positions.
Sourcepub fn address_for(
&self,
root: &NodeRoot,
steps: &[NodeStep],
) -> Result<NodeUri, NodeResolutionError>
pub fn address_for( &self, root: &NodeRoot, steps: &[NodeStep], ) -> Result<NodeUri, NodeResolutionError>
Return the canonical current URI for a known typed path, including a computed guard when that path enters ordered children.