Skip to main content

SourceResolver

Trait SourceResolver 

Source
pub trait SourceResolver {
    // Required methods
    fn identify(
        &self,
        from: Option<&SourceId>,
        import: &str,
    ) -> Result<SourceId, ResolveError>;
    fn load(
        &self,
        id: &SourceId,
        limits: &Limits,
    ) -> Result<ResolvedSource, ResolveError>;

    // Provided methods
    fn load_with_context(
        &self,
        id: &SourceId,
        context: &RuntimeContext,
    ) -> Result<ResolvedSource, ResolveError> { ... }
    fn resolve(
        &self,
        from: Option<&SourceId>,
        import: &str,
        limits: &Limits,
    ) -> Result<ResolvedSource, ResolveError> { ... }
    fn resolve_with_context(
        &self,
        from: Option<&SourceId>,
        import: &str,
        context: &RuntimeContext,
    ) -> Result<ResolvedSource, ResolveError> { ... }
}

Required Methods§

Source

fn identify( &self, from: Option<&SourceId>, import: &str, ) -> Result<SourceId, ResolveError>

Source

fn load( &self, id: &SourceId, limits: &Limits, ) -> Result<ResolvedSource, ResolveError>

Provided Methods§

Source

fn load_with_context( &self, id: &SourceId, context: &RuntimeContext, ) -> Result<ResolvedSource, ResolveError>

Loads with cooperative runtime cancellation and deadline checks. Implementations that do long-running work may override this method to checkpoint internally.

Source

fn resolve( &self, from: Option<&SourceId>, import: &str, limits: &Limits, ) -> Result<ResolvedSource, ResolveError>

Source

fn resolve_with_context( &self, from: Option<&SourceId>, import: &str, context: &RuntimeContext, ) -> Result<ResolvedSource, ResolveError>

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl SourceResolver for MemoryResolver

Source§

impl SourceResolver for WorkspaceResolver

Available on crate feature filesystem-compiler only.