pub trait ReferenceResolver: Send + Sync {
// Required methods
fn can_resolve(&self, reference: &str) -> bool;
fn resolve(
&self,
reference: &str,
imports: &[Import],
context: &ResolutionContext,
) -> Option<Resolution>;
fn parse_import_path(&self, path: &str) -> Option<ImportMetadata>;
fn name(&self) -> &str;
}Expand description
Trait for implementing type resolution strategies
Each implementation handles a specific pattern of imports/references (e.g., Kubernetes, Crossplane, custom CRDs, etc.)
Required Methods§
Sourcefn can_resolve(&self, reference: &str) -> bool
fn can_resolve(&self, reference: &str) -> bool
Check if this resolver can handle the given reference
Sourcefn resolve(
&self,
reference: &str,
imports: &[Import],
context: &ResolutionContext,
) -> Option<Resolution>
fn resolve( &self, reference: &str, imports: &[Import], context: &ResolutionContext, ) -> Option<Resolution>
Try to resolve a type reference given the current imports
Sourcefn parse_import_path(&self, path: &str) -> Option<ImportMetadata>
fn parse_import_path(&self, path: &str) -> Option<ImportMetadata>
Extract type information from an import path Returns (group, version, kind) if applicable