aboutsummaryrefslogtreecommitdiffstats
path: root/askama_derive/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Refactored `match node` in `find_used_templates`Libravatar max2024-01-171-3/+17
| | | | Signed-off-by: max <gmx.sht@gmail.com>
* Generator: make `normalize_identifier` faster (#946)Libravatar René Kijewski2024-01-121-54/+105
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `normalize_identifier` is called quite often in the generator, once for every variable name or path element that is written. This PR aims to speed up the function by * using a per-length input string length replacement map * binary searching the replacement map instead of a linear search Diffent, but functionally equivalent implementations were compared: ```text * linear search in one big map: 348.44 µs * binary search in one big map: 334.46 µs * linear search in a per-length map: 178.84 µs * binary search in a per-length map: 154.54 µs * perfect hashing: 170.87 µs ``` The winner of this competition is "binary search in a per-length map". It does not introduce new dependencies, but has the slight disadvantage that it uses one instance of `unsafe` code. I deem this disadvantage acceptable, though. Nb. It was also tested if a variant that only stores the replaced string would be faster. This "optimization" proved to be slower for all implementations except "binary search in a per-length map", for which it has the same runtime. Without a clear advantage to use the "optimized version", I chose to use the more easy to read slice of tuples variant. Obviously, for all measurements: YMMV.
* Add `as_ref` builtin filterLibravatar Guillaume Gomez2024-01-121-0/+17
|
* Revert "Add automatic borrowing to let statement"Libravatar Guillaume Gomez2024-01-101-7/+0
| | | | This reverts commit 3d52283b74573af509deb3c47cbabf7b7b58b1dd.
* Make the `markdown` filter compatible with `String`Libravatar Jakub Stachurski2024-01-091-1/+1
| | | | | | | | | | | | | | | | | This commit solves issue #719. This is done by making the markdown filter borrow the string and simplifying the filter to accept `&str` instead of `AsRef<str>` Add test for the markdown filter using as input Revert markdown filter changes Revert unnecessary changes Improve test_markdown_owned_string test Use cargo fmt
* Make API more idiomaticLibravatar Dirkjan Ochtman2023-12-182-4/+4
|
* Unbreak reading config from default locationLibravatar Dirkjan Ochtman2023-12-182-6/+8
| | | | | | I broke this in 2a4d58cbb2033114890415c98a61e730185d1f83 due to refactoring for better internal abstractions in askama_derive. We also don't currently have any tests for the default config path.
* Add automatic borrowing to let statementLibravatar max2023-12-131-0/+7
| | | | Signed-off-by: max <gmx.sht@gmail.com>
* Bugfix in `is_attr_self()`Libravatar max2023-12-131-1/+1
| | | | Signed-off-by: max <gmx.sht@gmail.com>
* Allow to pass named arguments to macro callsLibravatar Guillaume Gomez2023-11-281-1/+55
|
* Enhance match to include multiple targets (#911)Libravatar PizzasBear2023-11-221-0/+10
| | | Signed-off-by: max <gmx.sht@gmail.com>
* Improve macro call arguments loopLibravatar Guillaume Gomez2023-11-201-4/+1
|
* Improve output error for non-matching number of arguments for macrosLibravatar Guillaume Gomez2023-11-201-1/+8
|
* add support for svg file extensionLibravatar Marvin Jütte2023-11-092-3/+9
|
* Remove unused `_did_loop` condition if `else` block is emptyLibravatar Guillaume Gomez2023-11-011-9/+21
|
* Avoid passing around duplicate dataLibravatar Dirkjan Ochtman2023-11-012-21/+4
|
* Build Config from TemplateArgsLibravatar Dirkjan Ochtman2023-11-012-9/+12
|
* Reorganize TemplateArgs and TemplateInput structureLibravatar Dirkjan Ochtman2023-11-012-25/+24
|
* Inline some logic into find_used_templates()Libravatar Dirkjan Ochtman2023-11-012-8/+8
|
* Cleanup imports a bitLibravatar Dirkjan Ochtman2023-11-013-6/+4
|
* Implement Default for MapChainLibravatar Dirkjan Ochtman2023-11-012-8/+10
|
* Move build_template() up to the crate rootLibravatar Dirkjan Ochtman2023-11-012-63/+67
|
* Remove unnecessary type annotationLibravatar Dirkjan Ochtman2023-11-011-1/+1
|
* Attach find_used_templates() to TemplateInputLibravatar Dirkjan Ochtman2023-11-012-44/+45
|
* Move TemplateArgs into input moduleLibravatar Dirkjan Ochtman2023-11-012-134/+134
|
* Inline nested derive_template() implementationLibravatar Dirkjan Ochtman2023-11-012-12/+6
|
* Allow macros to take `self` as an argumentLibravatar PizzasBear2023-10-121-1/+1
|
* Apply clippy suggestions from Rust 1.73Libravatar Dirkjan Ochtman2023-10-061-1/+1
|
* Add MSRV checking in CILibravatar Dirkjan Ochtman2023-09-291-7/+2
| | | | Bump MSRV to 1.65 for the use of let .. else.
* parser: import `parser::{Expr, Node}`Libravatar René Kijewski2023-08-012-4/+4
|
* parser: `node::Loop` is much bigger than the other variantsLibravatar René Kijewski2023-08-011-8/+4
|
* parser: add type for `Node::Comment`Libravatar René Kijewski2023-08-011-5/+5
|
* parser: remove re-exports `parser::{node,expr}::*`Libravatar René Kijewski2023-08-013-5/+10
|
* parser: add type for `Node::Extends`Libravatar René Kijewski2023-08-012-3/+3
|
* parser: add type for `Node::Include`Libravatar René Kijewski2023-08-011-8/+7
|
* parser: rename `Node::Cond` into `If` and add typeLibravatar René Kijewski2023-08-012-10/+9
|
* parser: add type for `Node::Let`Libravatar René Kijewski2023-08-011-31/+19
|
* parser: add type for `Node::Raw`Libravatar René Kijewski2023-08-011-4/+4
|
* parser: add type for `Node::Lit`Libravatar René Kijewski2023-08-011-6/+7
|
* parser: add type for `Node::BlockDef`Libravatar René Kijewski2023-08-012-34/+13
|
* parser: add type for `Node::Match`Libravatar René Kijewski2023-08-012-9/+13
|
* parser: add type for `Node::Call`Libravatar René Kijewski2023-08-011-7/+10
|
* parser: add type for `Node::Import`Libravatar René Kijewski2023-08-012-8/+8
|
* parser: let `Macro` know its nameLibravatar René Kijewski2023-08-012-4/+4
|
* parser: rename block to nodesLibravatar Dirkjan Ochtman2023-07-312-6/+8
|
* parser: define a struct for MatchLibravatar Dirkjan Ochtman2023-07-312-6/+5
|
* parser: define a struct for CondLibravatar Dirkjan Ochtman2023-07-312-6/+6
|
* Extract askama_parser crateLibravatar Dirkjan Ochtman2023-07-319-2058/+6
|
* derive: move whitespace conversion into config moduleLibravatar Dirkjan Ochtman2023-07-312-12/+11
|
* derive: move Parsed into parser moduleLibravatar Dirkjan Ochtman2023-07-312-36/+35
|