aboutsummaryrefslogtreecommitdiffstats
path: root/askama_derive/src (unfollow)
Commit message (Collapse)AuthorFilesLines
2023-01-30derive: refactor parserLibravatar René Kijewski5-1940/+1999
`parser.rs` was a single file containing almost 2000 lines. This PR split the file into multiple, smaller files. `Expr`, `Node`, and `Target` each get an own file. Each struct gets a `parse()` method that return `Result<Self>`, and every other detail is private to the file. This PR should make this essential part of Askama more easy to understand, and make future modifications easier.
2023-01-30Extends expects a string and nothing elseLibravatar René Kijewski3-5/+5
2023-01-30Use `toml_edit` instead of `toml`Libravatar René Kijewski1-1/+2
Since version 0.6, `toml` is a wrapper around `toml_edit`, and the more basic library already meets our needs.
2023-01-30derive: Make Config `'static`Libravatar René Kijewski4-71/+67
The configuration is made `'static`, because `toml` and `toml_edit` both needs to implement serde's `DeserializeOwned` by now. We allocate the strings once per template, so it is very unlikely that this change will have any measurable impact, neither in compile time nor RAM usage.
2023-01-30Apply clippy suggestions for 1.67 (#769)Libravatar Dirkjan Ochtman4-42/+41
2022-11-09Fail to parse if keyword is not longest identLibravatar René Kijewski1-31/+56
This PR makes e.g. `{% leta = b %}` a parsing error. To the reader it would appear that `leta` should be a meaningful expression in Askama, which it is not. Before this PR, `leta` was tokenized as `let` + `a`. This PR makes the parser try to find the longest identifier at a parsing positions and only compare the outcome against the expected keyword. This is potentially a breaking change, because code that should always have been invalid will now fail to compile, when it was accepted before.
2022-11-07chore: remove allow(clippy::disallowed_names)Libravatar Dirkjan Ochtman1-1/+0
2022-11-07chore: apply clippy suggestions for 1.65Libravatar Dirkjan Ochtman1-1/+1
2022-09-26Remove `_ext` from `askama_hyper`, tooLibravatar René Kijewski1-2/+1
That part was missing from #632, because #632 came before #706, and I forgot to update the older PR.
2022-09-23Apply clippy suggestions from Rust 1.64 (#725)Libravatar Dirkjan Ochtman1-1/+1
2022-09-19Remove ext argument in integrationsLibravatar René Kijewski1-16/+7
2022-09-19Add Expr::is_cachable()Libravatar René Kijewski2-4/+35
2022-09-19Skip caching calls (Resolves #667)Libravatar vallentin1-3/+7
2022-07-25Remove support for deprecated `_parent` fieldLibravatar René Kijewski2-48/+1
The support for the magic `_parent` field is deprecated since v0.8.0 or issue #180. It's bothersome to keep this feature alive, when no-one should be using it for 3 years.
2022-07-25Implement basic hyper integrationLibravatar René Kijewski1-0/+27
The integration is based on askama_gotham. There is no specific trait to convert an arbitrary T to `hyper::Response`, so I used `From<Template> for hyper::Response`.
2022-06-20Feature-gate test_whitespace_parsing()Libravatar René Kijewski1-0/+1
2022-06-16Update to Rocket 0.5Libravatar René Kijewski1-1/+1
Though Rocket 0.5 still only a release candidate, Rocket 0.4 severely outdated, and depends on a bunch of crates with active security advisories. Rocket 0.5 updates its dependencies to fixes versions. Also Rocket 0.4 needs a nightly Rust, which caused multiple problems.
2022-06-15Replace `&Option<Box<T>>` with `Option<&T>` (#696)Libravatar René Kijewski2-5/+7
No need to work on references to references.
2022-06-15Remove BuildHasher from Heritage, tooLibravatar René Kijewski1-2/+2
2022-06-15Remove hash builder parameter from generatorLibravatar René Kijewski1-6/+7
The generator cannot be accessed outside of crate, so it's not possible to override the default hasher.
2022-06-15Replace .filter_map().next() with .filter_map()Libravatar René Kijewski1-3/+2
2022-06-15Copy can be derivedLibravatar René Kijewski1-6/+2
2022-05-24Move code generation into askama_deriveLibravatar René Kijewski6-1/+5034
2022-03-23Reduce askama_derive to a single re-exportLibravatar René Kijewski1-99/+1
All the hard work in askama_derive was actually done in askama_shared. This PR removes the back-and-forth interaction between the two crates. Now askama_derive is a single re-export of `#[derive(Template)]` which has to be done in a proc_macro crate. This most likely means that askama_derive is "final", unless another derive template needs to be introduced in the future.
2022-03-23Move handling of integrations into askama_sharedLibravatar René Kijewski1-14/+2
Before this PR the handling of integrations was done both by askama_shared and askama_derive. This diff lets askama_shared do the work. This will prevent problems like #629, when both packages might come out of sync.
2022-03-23Fix clippy warningLibravatar René Kijewski1-1/+1
2022-02-07Enable tracking of the offending span of an errorLibravatar René Kijewski1-4/+1
2022-02-03Replace custom Cow with actual CowLibravatar René Kijewski1-2/+3
2022-01-24Replace `&PathBuf` with `&Path`Libravatar René Kijewski1-3/+3
PathBuf is to String like Path is to str, so `&PathBuf` is a pointer to a pointer. Clippy does not likes that.
2022-01-12`&Option<T>` → `Option<&T>`Libravatar René Kijewski1-1/+1
2022-01-06Remove the iron integration from generatorLibravatar René Kijewski1-1/+0
Issue #527 removed the askama_iron package, but not the integration if someone uses askama_derive's feature with "iron". The old askama_iron crate uses askama v0.10, so it will still work.
2022-01-06Add `#![forbid(unsafe_code)]` to all crates except askama_escapeLibravatar René Kijewski1-0/+1
2022-01-06Add `#![deny(unreachable_pub)]` to all cratesLibravatar René Kijewski1-0/+1
2021-11-27Add Axum integrationLibravatar Michael Alyn Miller1-0/+1
2021-10-25Handle build hangs due to unintended template recursion. (#539)Libravatar Gaurav Tyagi1-0/+12
2021-07-01Stop eliding lifetimes in pathsLibravatar Dirkjan Ochtman1-2/+2
2021-06-14Fix needless borrowingLibravatar Dirkjan Ochtman1-1/+1
2020-11-02Use `syn::Error::to_compile_error` and add trybuild ui test (#374)Libravatar msrd01-4/+5
2020-11-02Improve error handling (see #368)Libravatar Dirkjan Ochtman1-18/+30
2020-07-28Add mendes integrationLibravatar Dirkjan Ochtman1-0/+1
2020-07-14alphabetize frameworksLibravatar Jacob Rothstein1-1/+1
2020-07-14askama tideLibravatar Jacob Rothstein1-0/+1
2020-01-29Move code generation into askama_sharedLibravatar Dirkjan Ochtman2-1509/+12
2020-01-29Move input module into askama_sharedLibravatar Dirkjan Ochtman3-224/+2
2020-01-29Move parser into askama_sharedLibravatar Dirkjan Ochtman3-1103/+4
2020-01-29Add support for warpLibravatar Bjørn Madsen1-0/+17
2020-01-29Move Iron integration into a separate askama_iron crateLibravatar Dirkjan Ochtman1-4/+4
2020-01-29Move Gotham integration into separate askama_gotham crateLibravatar Dirkjan Ochtman1-4/+4
2020-01-29Move Rocket integration into askama_rocket crateLibravatar Dirkjan Ochtman1-4/+4
2020-01-29Move Actix-Web integration into separate askama_actix crateLibravatar Dirkjan Ochtman1-5/+5