Я начал учить rust. Смотрю ютуб и пользуюсь чатГПТ. И мне стало интересно про макросы и спросил чатгпт .
Сделай пример ГЕНЕРАЦИЮ КОДА МАКРОСЕ . И вот
macro_rules! generate_add_functions {
($($t:ty)*) => {
$(
fn add_$t(a: $t, b: $t) -> $t {
a + b
}
)*
};
}
generate_add_functions!(i32 u32 f32); // Генерация функций для типов i32, u32, f32
fn main() {
let result1 = add_i32(2, 3);
let result2 = add_u32(5, 7);
let result3 = add_f32(1.5, 2.5);
println!("Результаты: {}, {}, {}", result1, result2, result3);
}
и компиляторе получил
Compiling playground v0.0.1 (/playground)
error: expected one of `(` or `<`, found `i32`
--> src/main.rs:5:20
|
5 | fn add_$t(a: $t, b: $t) -> $t {
| ^^ expected one of `(` or `<`
...
12 | generate_add_functions!(i32 u32 f32); // Генерация функций для типов i32, u32, f32
| ------------------------------------ in this macro invocation
|
= note: this error originates in the macro `generate_add_functions` (in Nightly builds, run with -Z macro-backtrace for more info)
что вызывает эту ошибку?