rust で jinja2 っぽいテンプレートエンジンいくつか触ってみた感想
mitsuhiko (jinja2 の作者だったような) 製
実行時にテンプレートを読み込んで処理する
テンプレートに渡す値は serde を通して受け渡しする
なので serde で serialize/deserialize 可能な値しか渡せない
型によっては、渡せはするけど文字列になっちゃってたりする
(触ってない。ドキュメントを軽く見た感想)
minijinja と同じような感じっぽい?
実行時にテンプレートを読み込む
serde で値を受け渡し
macro でコンパイル時にテンプレートを読み込む系
rust のコードに変換される
コンパイルされて実行ファイルに組み込まれるので、実行時にはテンプレートファイルは不要
逆に言うと、実行時にテンプレートを差し替えたりなどはできない
テンプレートを書き換えるたびにコンパイルし直す必要がある
rust のコードになるので、任意の型の値を普通にテンプレートに渡せる
渡した値のメソッドなんかもテンプレート中で普通に呼べる
型チェックもされる
エラーが分かりづらい
テンプレートのどこでエラーになったのかが分からない。
「nightly の機能使えばもっと情報出せるよ」みたいなメッセージが出てるので、そのうちなんとかなるのかもしれない。