Comments 6
.map(|meta| EndpointAttrs::from_nested_meta(&&meta))А тут точно двойной референс нужен?
многие вполне обоснованно побаиваются пользоваться этим инструментом, в основном из-за того, что разбор синтаксического дерева и атрибутов макроса зачастую превращается в «закат солнца вручную», так как задачу приходится решать на очень низком уровне.
Нужен автоматизированный мощный тулс для разборки макросов, иначе есть риск получить такой же ПЕСЕЦ размером с белого медведя как и в C++.
Ну так, собственно, инфраструктура развивается, те же самые darling/syn/quote тому доказательством. Уже вот даже watt появился, который это добро в WASM тащит.
Мне кажется, преимущество процедурных макросов по отношению к шаблонной магии плюсов в том, что макросы просто дают низкоуровневый доступ к абстракциям языка (при этом ничего нового, по сути, не появляется, мы просто вмешиваемся в работу компилятора), а шаблоны со всякой сфинаёй — это наслоение поверх существующих правил.
Поэтому, имхо, появление инфраструктуры, которая позволит писать процедурные макросы с тем же удобством, что и обычный код — вопрос времени.
Sign up to leave a comment.
Пишем API на Rust с помощью процедурных макросов