pub struct IncrementalParserV2 {
pub reused_nodes: usize,
pub reparsed_nodes: usize,
pub metrics: IncrementalMetrics,
pub last_reuse_analysis: Option<ReuseAnalysisResult>,
/* private fields */
}Expand description
High-performance incremental parser with intelligent AST node reuse
Maintains previous parse state and applies edits incrementally when possible, falling back to full parsing for complex structural changes. Designed for real-time editing scenarios with sub-millisecond update targets.
§Thread Safety
IncrementalParserV2 is not thread-safe and should be used from a single thread. For multi-threaded scenarios, create separate parser instances per thread.
Fields§
§reused_nodes: usize§reparsed_nodes: usize§metrics: IncrementalMetrics§last_reuse_analysis: Option<ReuseAnalysisResult>Performance tracking for reuse analysis
Implementations§
Source§impl IncrementalParserV2
impl IncrementalParserV2
pub fn new() -> IncrementalParserV2
Sourcepub fn with_reuse_config(config: ReuseConfig) -> IncrementalParserV2
pub fn with_reuse_config(config: ReuseConfig) -> IncrementalParserV2
Create parser with custom reuse configuration
pub fn edit(&mut self, edit: Edit)
pub fn parse(&mut self, source: &str) -> Result<Node, ParseError>
Sourcepub fn get_metrics(&self) -> &IncrementalMetrics
pub fn get_metrics(&self) -> &IncrementalMetrics
Get current performance metrics
Sourcepub fn reset_metrics(&mut self)
pub fn reset_metrics(&mut self)
Reset performance metrics
Sourcepub fn get_last_reuse_analysis(&self) -> Option<&ReuseAnalysisResult>
pub fn get_last_reuse_analysis(&self) -> Option<&ReuseAnalysisResult>
Get the last reuse analysis result if available
Sourcepub fn set_reuse_config(&mut self, config: ReuseConfig)
pub fn set_reuse_config(&mut self, config: ReuseConfig)
Update reuse configuration
Sourcepub fn used_advanced_reuse(&self) -> bool
pub fn used_advanced_reuse(&self) -> bool
Check if the last parse used advanced reuse analysis
Sourcepub fn get_reuse_efficiency_report(&self) -> String
pub fn get_reuse_efficiency_report(&self) -> String
Get detailed reuse efficiency report
Trait Implementations§
Source§impl Default for IncrementalParserV2
impl Default for IncrementalParserV2
Source§fn default() -> IncrementalParserV2
fn default() -> IncrementalParserV2
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for IncrementalParserV2
impl RefUnwindSafe for IncrementalParserV2
impl Send for IncrementalParserV2
impl Sync for IncrementalParserV2
impl Unpin for IncrementalParserV2
impl UnsafeUnpin for IncrementalParserV2
impl UnwindSafe for IncrementalParserV2
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