Compile-time templates in Rust