pub struct ImportOptimizer;Expand description
Import optimizer for analyzing and optimizing Perl import statements
The optimizer currently supports:
- Parsing basic
use Module qw(symbols)statements - Detecting unused imported symbols
- Finding duplicate imports that can be merged
- Generating consolidated import statements
Implementations§
Source§impl ImportOptimizer
impl ImportOptimizer
Sourcepub fn new() -> ImportOptimizer
pub fn new() -> ImportOptimizer
Sourcepub fn analyze_file(&self, file_path: &Path) -> Result<ImportAnalysis, String>
pub fn analyze_file(&self, file_path: &Path) -> Result<ImportAnalysis, String>
Analyze imports in a Perl file during the Analyze stage.
§Arguments
file_path- Path to the Perl file to analyze.
§Returns
ImportAnalysis with detected issues on success.
§Errors
Returns an error string if the file cannot be read or parsing fails.
§Examples
ⓘ
use perl_parser::import_optimizer::ImportOptimizer;
let optimizer = ImportOptimizer::new();
let _analysis = optimizer.analyze_file(std::path::Path::new("script.pl"))?;Sourcepub fn analyze_content(&self, content: &str) -> Result<ImportAnalysis, String>
pub fn analyze_content(&self, content: &str) -> Result<ImportAnalysis, String>
Analyze imports in Perl content during the Analyze stage.
§Arguments
content- The Perl source code content to analyze.
§Returns
ImportAnalysis with detected issues on success.
§Errors
Returns an error string if regex parsing or analysis fails.
§Examples
ⓘ
use perl_parser::import_optimizer::ImportOptimizer;
let optimizer = ImportOptimizer::new();
let analysis = optimizer.analyze_content("use strict;")?;
assert!(analysis.imports.len() >= 1);Sourcepub fn generate_optimized_imports(&self, analysis: &ImportAnalysis) -> String
pub fn generate_optimized_imports(&self, analysis: &ImportAnalysis) -> String
Generate optimized import statements from analysis results.
Used in the Analyze stage to prepare refactoring edits for imports.
§Arguments
analysis- The import analysis results.
§Returns
A string containing optimized import statements, one per line.
§Examples
ⓘ
use perl_parser::import_optimizer::ImportOptimizer;
let optimizer = ImportOptimizer::new();
let analysis = optimizer.analyze_content("use strict;")?;
let imports = optimizer.generate_optimized_imports(&analysis);
assert!(!imports.is_empty());Sourcepub fn generate_edits(
&self,
content: &str,
analysis: &ImportAnalysis,
) -> Vec<TextEdit>
pub fn generate_edits( &self, content: &str, analysis: &ImportAnalysis, ) -> Vec<TextEdit>
Generate text edits to apply optimized imports during Analyze workflows.
§Arguments
content- Original Perl source content.analysis- Import analysis results.
§Returns
Text edits to apply to the source document.
§Examples
ⓘ
use perl_parser::import_optimizer::ImportOptimizer;
let optimizer = ImportOptimizer::new();
let analysis = optimizer.analyze_content("use strict;")?;
let edits = optimizer.generate_edits("use strict;", &analysis);
assert!(!edits.is_empty());Trait Implementations§
Source§impl Default for ImportOptimizer
impl Default for ImportOptimizer
Source§fn default() -> ImportOptimizer
fn default() -> ImportOptimizer
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for ImportOptimizer
impl RefUnwindSafe for ImportOptimizer
impl Send for ImportOptimizer
impl Sync for ImportOptimizer
impl Unpin for ImportOptimizer
impl UnsafeUnpin for ImportOptimizer
impl UnwindSafe for ImportOptimizer
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
Mutably borrows from an owned value. Read more