Parser Optimization, Performance Enhancements & Code Cleanup #40
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🛠️ Parser and Evaluation Optimization
🚀 Overview
This PR refactors the expression evaluation and parsing logic to improve performance, maintainability, and correctness. The main changes include removing unnecessary allocations, and optimizing string handling.
🔑 Key Changes
Optimized String Handling
String
inValue::Text
withCow<'static, str>
to reduce unnecessary allocations and improve efficiency by avoiding cloning where possible.EvalContext
to useCow
for efficient storage and retrieval of variables, ensuring that string data is managed more effectively.Improved Expression Evaluation (
eval_expr
).to_string()
conversions, which were causing unnecessary string allocations.Enhanced Error Messages & Documentation
Testing and Validation
Code Refactoring & Cleanup
Performance Enhancements
📈 Impact
✅ Better Performance – Fewer memory allocations, faster evaluation, and optimized parsing logic.
✅ Lower Memory Usage – Reduced heap allocations using
Cow<'static, str>
and optimized data structures.✅ Simplified Code – Refactored complex logic, and improved formatting for better readability.
✅ Improved Maintainability – Cleaner parsing logic, better error messages, and enhanced documentation.