Commits
Click on a commit to change the comparison range♻️ refactor(module): introduce ModuleIO trait for testable module loading
Abstracts file system operations from the module loader by introducing a
ModuleIO trait, making the module system more testable and flexible.
Changes:
- Add ModuleIO trait to abstract module I/O operations
- Implement FsModuleIO for file system-based module loading
- Make Engine and ModuleLoader generic over ModuleIO
- Add DefaultEngine and DefaultModuleLoader type aliases
- Rename set_paths to set_search_paths for clarity
- Update all examples, benchmarks, and tests to use DefaultEngine
- Remove unused mq-macros crate and rule110.rs example
- Update documentation comments to reflect new API
This refactoring enables easier testing with mock implementations and
provides a cleaner separation of concerns between module loading logic
and I/O operations. ♻️ Fix use DefaultEngine in proptests Update crates/mq-lang/src/eval/module.rs
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> ♻️ Replace Engine with DefaultEngine ♻️ Rename parameter in Engine constructor for clarity and update imports Update crates/mq-lang/src/optimizer.rs
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> ♻️ Update function inlining logic and add tests for implicit first argument handling Update crates/mq-lang/src/module/resolver.rs
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>