Skip to main content

ImportOptimizer

Struct ImportOptimizer 

Source
pub struct ImportOptimizer;
Expand description

Import analysis, optimization, and unused import detection. 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

Source

pub fn new() -> ImportOptimizer

Create a new import optimizer for Analyze-stage refactorings.

§Returns

A ready-to-use ImportOptimizer instance.

§Examples
use perl_parser::import_optimizer::ImportOptimizer;

let optimizer = ImportOptimizer::new();
let _ = optimizer;
Source

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"))?;
Source

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);
Source

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());
Source

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

Source§

fn default() -> ImportOptimizer

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more