Skip to main content

SourceAdapter

Trait SourceAdapter 

Source
pub trait SourceAdapter: Sync {
    // Required methods
    fn name(&self) -> &'static str;
    fn language(&self) -> SourceLanguage;
    fn extract(&self, source: &str, file: &SourceFile) -> Result<Extraction>;

    // Provided methods
    fn discover_by_default(&self) -> bool { ... }
    fn inspect_source(
        &self,
        _file: &SourceFile,
        _registrations: &[String],
    ) -> Option<SourceExclusion> { ... }
    fn supports_indirect_usage(&self) -> bool { ... }
    fn resolve_parameter_types(
        &self,
        declarations: Vec<SourceParameterType>,
        configured: &BTreeMap<String, String>,
    ) -> (BTreeMap<String, String>, Vec<String>) { ... }
    fn prepare_session(
        &self,
        _files: &[SourceFile],
        _session: &mut SourceExtractionSession,
    ) -> Result<()> { ... }
    fn finalize_session(
        &self,
        _session: &mut SourceExtractionSession,
    ) -> Result<SourceFinalization> { ... }
    fn extract_with_session(
        &self,
        source: &str,
        file: &SourceFile,
        _session: &mut SourceExtractionSession,
    ) -> Result<Extraction> { ... }
    fn extract_file(&self, file: &SourceFile) -> Result<Extraction> { ... }
    fn extract_file_with_session(
        &self,
        file: &SourceFile,
        session: &mut SourceExtractionSession,
    ) -> Result<Extraction> { ... }
}
Expand description

Converts one supported definition-source language into the shared definition IR.

Required Methods§

Source

fn name(&self) -> &'static str

Stable adapter name used in diagnostics and registry inspection.

Source

fn language(&self) -> SourceLanguage

Parser language produced by this adapter registration.

Source

fn extract(&self, source: &str, file: &SourceFile) -> Result<Extraction>

Extracts definitions from in-memory source using file for source locations.

Provided Methods§

Source

fn discover_by_default(&self) -> bool

Whether this frontend participates when no definition globs are configured.

Source

fn inspect_source( &self, _file: &SourceFile, _registrations: &[String], ) -> Option<SourceExclusion>

Classifies a source using this frontend’s bounded input-filter policy.

Source

fn supports_indirect_usage(&self) -> bool

Whether missing source metadata or reads leave indirect step usage unknown.

Source

fn resolve_parameter_types( &self, declarations: Vec<SourceParameterType>, configured: &BTreeMap<String, String>, ) -> (BTreeMap<String, String>, Vec<String>)

Resolves source parameter declarations without granting unknown matcher authority.

Source

fn prepare_session( &self, _files: &[SourceFile], _session: &mut SourceExtractionSession, ) -> Result<()>

Prepares selected-source evidence before extraction, without executing source code.

Source

fn finalize_session( &self, _session: &mut SourceExtractionSession, ) -> Result<SourceFinalization>

Reports frontend-owned trust effects after every selected source has been extracted.

Source

fn extract_with_session( &self, source: &str, file: &SourceFile, _session: &mut SourceExtractionSession, ) -> Result<Extraction>

Extracts definitions while sharing bounded state with other files in the same run.

Source

fn extract_file(&self, file: &SourceFile) -> Result<Extraction>

Reads and extracts one source file.

Source

fn extract_file_with_session( &self, file: &SourceFile, session: &mut SourceExtractionSession, ) -> Result<Extraction>

Reads and extracts one source file using shared run state.

Dyn Compatibility§

This trait is dyn compatible.

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

Implementors§