pub struct SourceCatalog { /* private fields */ }Expand description
A source-only namespace catalog used by native runtimes.
The catalog resolves conventional namespace paths at the require
boundary. It discovers the complete legacy path map only when a requested
namespace cannot be derived from its name, so starting a project never
walks unrelated source families such as lang.*.
Implementations§
Source§impl SourceCatalog
impl SourceCatalog
Sourcepub fn path(&self, namespace: &str) -> Option<PathBuf>
pub fn path(&self, namespace: &str) -> Option<PathBuf>
Resolves one namespace on demand. Conventional foo.bar namespaces
use foo/bar.hal directly; a one-time legacy scan is reserved for
paths such as impl_base.hal declaring impl-base.
pub fn namespaces(&self) -> Vec<String>
Sourcepub fn fingerprint(&self) -> Result<[u8; 32], String>
pub fn fingerprint(&self) -> Result<[u8; 32], String>
Returns a stable fingerprint of the indexed source set. The source cache keys individual programs by source bytes as well; this broader index fingerprint invalidates programs whose compilation depends on a changed sibling namespace configuration without rereading every source body during ordinary namespace loading.
Sourcepub fn content_fingerprint_prefixes(
&self,
prefixes: &[&str],
) -> Result<[u8; 32], String>
pub fn content_fingerprint_prefixes( &self, prefixes: &[&str], ) -> Result<[u8; 32], String>
Returns a content address for source namespaces selected by a family prefix. Artifact owners use this instead of the whole-project index when unrelated application source must not invalidate their cache.
Sourcepub fn content_fingerprint_dependencies(
&self,
roots: &[&str],
) -> Result<[u8; 32], String>
pub fn content_fingerprint_dependencies( &self, roots: &[&str], ) -> Result<[u8; 32], String>
Returns a content address for one namespace and its declarative source dependency closure. Unlike family fingerprints, this resolves only the namespaces that an artifact can load, so a JavaScript Book is not invalidated by unrelated Python, Lua, or application source.
Trait Implementations§
Source§impl Clone for SourceCatalog
impl Clone for SourceCatalog
Source§fn clone(&self) -> SourceCatalog
fn clone(&self) -> SourceCatalog
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for SourceCatalog
impl Debug for SourceCatalog
Source§impl Default for SourceCatalog
impl Default for SourceCatalog
Source§fn default() -> SourceCatalog
fn default() -> SourceCatalog
Auto Trait Implementations§
impl Freeze for SourceCatalog
impl RefUnwindSafe for SourceCatalog
impl Send for SourceCatalog
impl Sync for SourceCatalog
impl Unpin for SourceCatalog
impl UnsafeUnpin for SourceCatalog
impl UnwindSafe for SourceCatalog
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more