harehare
mq
BlogDocsChangelog

✨ feat(lang): add 8 useful utility functions and macros

#1043Merged
Comparing
feat/add-when-default-to-compact-map-macros
(
c8e6ae3
) with
main
(
2e906d7
)
CodSpeed Performance Gauge
-13%
Improvements
1
Regressions
2
Untouched
26

Benchmarks

Failed

eval_nested_object_access
crates/mq-lang/benches/benchmark.rs
Regression
CodSpeed Performance Gauge
-13%
5.2 ms6 ms
eval_foreach
crates/mq-lang/benches/benchmark.rs
Regression
CodSpeed Performance Gauge
-10%
5.6 ms6.3 ms

Improved

eval_variable_assignment_chain
crates/mq-lang/benches/benchmark.rs
CodSpeed Performance Gauge
+14%
973 µs851.8 µs

Passed

eval_fibonacci
crates/mq-lang/benches/benchmark.rs
CodSpeed Performance Gauge
+3%
57 ms55.5 ms
eval_string_interpolation
crates/mq-lang/benches/benchmark.rs
CodSpeed Performance Gauge
+2%
60.9 µs59.9 µs
eval_macro_expansion_nested
crates/mq-lang/benches/benchmark.rs
CodSpeed Performance Gauge
+1%
113 µs111.8 µs
eval_function_call_overhead
crates/mq-lang/benches/benchmark.rs
CodSpeed Performance Gauge
+1%
1.5 ms1.5 ms
eval_nested_function_calls
crates/mq-lang/benches/benchmark.rs
CodSpeed Performance Gauge
0%
1.1 ms1 ms
eval_while_speed_test
crates/mq-lang/benches/benchmark.rs
CodSpeed Performance Gauge
0%
17.1 ms17.2 ms
eval_yaml_parse
crates/mq-lang/benches/benchmark.rs
CodSpeed Performance Gauge
-2%
24.9 ms25.4 ms
eval_select_h
crates/mq-lang/benches/benchmark.rs
CodSpeed Performance Gauge
-2%
264.2 µs269.7 µs
eval_qualified_access_to_csv_module
crates/mq-lang/benches/benchmark.rs
CodSpeed Performance Gauge
-2%
10.3 ms10.6 ms
eval_no_macro_large_program
crates/mq-lang/benches/benchmark.rs
CodSpeed Performance Gauge
-2%
302.1 µs308.6 µs
eval_large_markdown_filtering
crates/mq-lang/benches/benchmark.rs
CodSpeed Performance Gauge
-2%
24.7 ms25.3 ms
eval_markdown_complex_query
crates/mq-lang/benches/benchmark.rs
CodSpeed Performance Gauge
-3%
20.8 ms21.3 ms
eval_csv_parse
crates/mq-lang/benches/benchmark.rs
CodSpeed Performance Gauge
-3%
10.2 ms10.5 ms
eval_macro_expansion_simple
crates/mq-lang/benches/benchmark.rs
CodSpeed Performance Gauge
-3%
201.3 µs207.4 µs
eval_json_parse
crates/mq-lang/benches/benchmark.rs
CodSpeed Performance Gauge
-3%
12.7 ms13.2 ms
eval_array_chained_operations
crates/mq-lang/benches/benchmark.rs
CodSpeed Performance Gauge
-4%
8.9 ms9.4 ms
eval_array_filter
crates/mq-lang/benches/benchmark.rs
CodSpeed Performance Gauge
-5%
9.7 ms10.2 ms
parse_fibonacci
crates/mq-lang/benches/benchmark.rs
CodSpeed Performance Gauge
-6%
155.9 µs165.1 µs
eval_object_field_access
crates/mq-lang/benches/benchmark.rs
CodSpeed Performance Gauge
-6%
5.9 ms6.3 ms
eval_if_else_branching
crates/mq-lang/benches/benchmark.rs
CodSpeed Performance Gauge
-6%
7.2 ms7.7 ms
eval_long_pipeline
crates/mq-lang/benches/benchmark.rs
CodSpeed Performance Gauge
-7%
6.7 ms7.2 ms
eval_pipeline_with_conditionals
crates/mq-lang/benches/benchmark.rs
CodSpeed Performance Gauge
-7%
5.7 ms6.2 ms
eval_array_map
crates/mq-lang/benches/benchmark.rs
CodSpeed Performance Gauge
-8%
7.3 ms7.9 ms
eval_nodes
crates/mq-lang/benches/benchmark.rs
CodSpeed Performance Gauge
-8%
4.8 ms5.2 ms
eval_string_equality
crates/mq-lang/benches/benchmark.rs
CodSpeed Performance Gauge
-9%
5.3 ms5.8 ms
eval_array_fold
crates/mq-lang/benches/benchmark.rs
CodSpeed Performance Gauge
-10%
6.5 ms7.2 ms

Commits

Click on a commit to change the comparison range
Base
main
2e906d7
-14.28%
✨ feat(lang): add 8 useful utility functions and macros Add new utility functions and macros to builtin.mq: - reject: Filters out elements matching a condition (opposite of filter) - partition: Splits array into [matching, not_matching] based on condition - get_or: Safely gets dict value with default fallback - times: Executes expression n times and returns array of results - between: Checks if value is between min and max (inclusive) - not_empty: Checks if value is not empty (opposite of is_empty) - sum_by: Sums array elements after applying transformation function - index_by: Creates dictionary indexed by key extracted from elements All functions include comprehensive tests covering edge cases and typical usage patterns.
90fc329
2 days ago
by harehare
+1.48%
♻️ refactor(lang): remove when macro from builtin.mq Remove the when macro and its associated test as it's redundant with the existing if expression syntax.
15243f5
2 days ago
by harehare
+1.24%
♻️ refactor(lang): convert compact_map to function and remove not_empty macro
3c26eb2
2 days ago
by harehare
+0.97%
Update crates/mq-lang/builtin.mq Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
8e1efc8
2 days ago
by harehare
-1.49%
♻️ refactor(lang): convert index_by from macro to function
a9d6377
2 days ago
by harehare
-0.51%
♻️ refactor(lang): convert get_or, default_to, and between from macros to functions Converts three macros to simpler function implementations: - default_to: returns default value if input is None or empty - get_or: safely gets dict value with default fallback - between: checks if value is within min/max range (inclusive)
c8e6ae3
2 days ago
by harehare
© 2026 CodSpeed Technology
Home Terms Privacy Docs