Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Improve performance of `find_used_templates` | 2024-01-17 | 1 | -2/+7 | |
| | | | | Signed-off-by: max <gmx.sht@gmail.com> | ||||
* | Deduplicating some code in `find_used_templates` | 2024-01-17 | 1 | -6/+9 | |
| | | | | Signed-off-by: max <gmx.sht@gmail.com> | ||||
* | Allow included templates to `extend`, `import`, and `macro` | 2024-01-17 | 3 | -58/+95 | |
| | | | | Signed-off-by: max <gmx.sht@gmail.com> | ||||
* | Refactored `match node` in `find_used_templates` | 2024-01-17 | 1 | -3/+17 | |
| | | | | Signed-off-by: max <gmx.sht@gmail.com> | ||||
* | Generator: make `normalize_identifier` faster (#946) | 2024-01-12 | 1 | -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 filter | 2024-01-12 | 1 | -0/+17 | |
| | |||||
* | Revert "Add automatic borrowing to let statement" | 2024-01-10 | 1 | -7/+0 | |
| | | | | This reverts commit 3d52283b74573af509deb3c47cbabf7b7b58b1dd. | ||||
* | Make the `markdown` filter compatible with `String` | 2024-01-09 | 1 | -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 idiomatic | 2023-12-18 | 2 | -4/+4 | |
| | |||||
* | Unbreak reading config from default location | 2023-12-18 | 2 | -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 statement | 2023-12-13 | 1 | -0/+7 | |
| | | | | Signed-off-by: max <gmx.sht@gmail.com> | ||||
* | Bugfix in `is_attr_self()` | 2023-12-13 | 1 | -1/+1 | |
| | | | | Signed-off-by: max <gmx.sht@gmail.com> | ||||
* | Allow to pass named arguments to macro calls | 2023-11-28 | 1 | -1/+55 | |
| | |||||
* | Enhance match to include multiple targets (#911) | 2023-11-22 | 1 | -0/+10 | |
| | | | Signed-off-by: max <gmx.sht@gmail.com> | ||||
* | Improve macro call arguments loop | 2023-11-20 | 1 | -4/+1 | |
| | |||||
* | Improve output error for non-matching number of arguments for macros | 2023-11-20 | 1 | -1/+8 | |
| | |||||
* | add support for svg file extension | 2023-11-09 | 2 | -3/+9 | |
| | |||||
* | Remove unused `_did_loop` condition if `else` block is empty | 2023-11-01 | 1 | -9/+21 | |
| | |||||
* | Avoid passing around duplicate data | 2023-11-01 | 2 | -21/+4 | |
| | |||||
* | Build Config from TemplateArgs | 2023-11-01 | 2 | -9/+12 | |
| | |||||
* | Reorganize TemplateArgs and TemplateInput structure | 2023-11-01 | 2 | -25/+24 | |
| | |||||
* | Inline some logic into find_used_templates() | 2023-11-01 | 2 | -8/+8 | |
| | |||||
* | Cleanup imports a bit | 2023-11-01 | 3 | -6/+4 | |
| | |||||
* | Implement Default for MapChain | 2023-11-01 | 2 | -8/+10 | |
| | |||||
* | Move build_template() up to the crate root | 2023-11-01 | 2 | -63/+67 | |
| | |||||
* | Remove unnecessary type annotation | 2023-11-01 | 1 | -1/+1 | |
| | |||||
* | Attach find_used_templates() to TemplateInput | 2023-11-01 | 2 | -44/+45 | |
| | |||||
* | Move TemplateArgs into input module | 2023-11-01 | 2 | -134/+134 | |
| | |||||
* | Inline nested derive_template() implementation | 2023-11-01 | 2 | -12/+6 | |
| | |||||
* | Allow macros to take `self` as an argument | 2023-10-12 | 1 | -1/+1 | |
| | |||||
* | Apply clippy suggestions from Rust 1.73 | 2023-10-06 | 1 | -1/+1 | |
| | |||||
* | Add MSRV checking in CI | 2023-09-29 | 1 | -7/+2 | |
| | | | | Bump MSRV to 1.65 for the use of let .. else. | ||||
* | parser: import `parser::{Expr, Node}` | 2023-08-01 | 2 | -4/+4 | |
| | |||||
* | parser: `node::Loop` is much bigger than the other variants | 2023-08-01 | 1 | -8/+4 | |
| | |||||
* | parser: add type for `Node::Comment` | 2023-08-01 | 1 | -5/+5 | |
| | |||||
* | parser: remove re-exports `parser::{node,expr}::*` | 2023-08-01 | 3 | -5/+10 | |
| | |||||
* | parser: add type for `Node::Extends` | 2023-08-01 | 2 | -3/+3 | |
| | |||||
* | parser: add type for `Node::Include` | 2023-08-01 | 1 | -8/+7 | |
| | |||||
* | parser: rename `Node::Cond` into `If` and add type | 2023-08-01 | 2 | -10/+9 | |
| | |||||
* | parser: add type for `Node::Let` | 2023-08-01 | 1 | -31/+19 | |
| | |||||
* | parser: add type for `Node::Raw` | 2023-08-01 | 1 | -4/+4 | |
| | |||||
* | parser: add type for `Node::Lit` | 2023-08-01 | 1 | -6/+7 | |
| | |||||
* | parser: add type for `Node::BlockDef` | 2023-08-01 | 2 | -34/+13 | |
| | |||||
* | parser: add type for `Node::Match` | 2023-08-01 | 2 | -9/+13 | |
| | |||||
* | parser: add type for `Node::Call` | 2023-08-01 | 1 | -7/+10 | |
| | |||||
* | parser: add type for `Node::Import` | 2023-08-01 | 2 | -8/+8 | |
| | |||||
* | parser: let `Macro` know its name | 2023-08-01 | 2 | -4/+4 | |
| | |||||
* | parser: rename block to nodes | 2023-07-31 | 2 | -6/+8 | |
| | |||||
* | parser: define a struct for Match | 2023-07-31 | 2 | -6/+5 | |
| | |||||
* | parser: define a struct for Cond | 2023-07-31 | 2 | -6/+6 | |
| |