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§
Sourcefn name(&self) -> &'static str
fn name(&self) -> &'static str
Stable adapter name used in diagnostics and registry inspection.
Sourcefn language(&self) -> SourceLanguage
fn language(&self) -> SourceLanguage
Parser language produced by this adapter registration.
Sourcefn extract(&self, source: &str, file: &SourceFile) -> Result<Extraction>
fn extract(&self, source: &str, file: &SourceFile) -> Result<Extraction>
Extracts definitions from in-memory source using file for source locations.
Provided Methods§
Sourcefn discover_by_default(&self) -> bool
fn discover_by_default(&self) -> bool
Whether this frontend participates when no definition globs are configured.
Sourcefn inspect_source(
&self,
_file: &SourceFile,
_registrations: &[String],
) -> Option<SourceExclusion>
fn inspect_source( &self, _file: &SourceFile, _registrations: &[String], ) -> Option<SourceExclusion>
Classifies a source using this frontend’s bounded input-filter policy.
Sourcefn supports_indirect_usage(&self) -> bool
fn supports_indirect_usage(&self) -> bool
Whether missing source metadata or reads leave indirect step usage unknown.
Sourcefn resolve_parameter_types(
&self,
declarations: Vec<SourceParameterType>,
configured: &BTreeMap<String, String>,
) -> (BTreeMap<String, String>, Vec<String>)
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.
Sourcefn prepare_session(
&self,
_files: &[SourceFile],
_session: &mut SourceExtractionSession,
) -> Result<()>
fn prepare_session( &self, _files: &[SourceFile], _session: &mut SourceExtractionSession, ) -> Result<()>
Prepares selected-source evidence before extraction, without executing source code.
Sourcefn finalize_session(
&self,
_session: &mut SourceExtractionSession,
) -> Result<SourceFinalization>
fn finalize_session( &self, _session: &mut SourceExtractionSession, ) -> Result<SourceFinalization>
Reports frontend-owned trust effects after every selected source has been extracted.
Sourcefn extract_with_session(
&self,
source: &str,
file: &SourceFile,
_session: &mut SourceExtractionSession,
) -> Result<Extraction>
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.
Sourcefn extract_file(&self, file: &SourceFile) -> Result<Extraction>
fn extract_file(&self, file: &SourceFile) -> Result<Extraction>
Reads and extracts one source file.
Sourcefn extract_file_with_session(
&self,
file: &SourceFile,
session: &mut SourceExtractionSession,
) -> Result<Extraction>
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".