Добрый день.
Пишу бэк и параллельно осваиваю макросы. Понял, что декларативных мне мало, ибо существующие разрешённые токены порой не позволяют порой писать так, как хочется, да и возможность парсинга процмакросы иногда дают иные.
Попробовал написать процедурный. Минусов значительное количество:
- Cannot find declaration to go to
при тыках на сам макрос/создаваемые им вещи
- полное отсутствие этих вещей в скоупе автокомплита что у Inteleji Rust, что у RA. Декларативные хотя бы не надо помнить наизусть.
- сложнее их изучить.
- код уходит в другой крейт, сложнее поддерживать актуальность
Плюсы, собственно, тоже понятные: вообще любой текст можно внутрь пихать, ибо парсинг идёт вручную.
Вот из этого и выходит вопрос - стоит связываться с написанием процмакросов? Или оно того не стоит, поддержка существующими анализаторами будет нескоро, если вообще будет, и компилятор оно ломает прилично, а ошибки прячутся далеко.
Хотелось бы услышать "за" и "против" от тех, кто уже давно пишет.
Если да - подмогите ресурсами по процмакросам и парсингу, например, как реализовать переменное количество аргументов и так далее. Пока изучал function-like по экзамплам из syn
(пример с lazy_static!).