Как определить свойства компиляции в процедурном макросе?
Я работаю над процедурным макросом, который выполняет много работы, которая может значительно замедлить компиляцию. Проделанная работа не влияет на семантику функции; то есть, если дан тот же набор аргументов, возвращаемое значение не изменяется в зависимости от того, применен ли макрос.
Чтобы сделать цикл edit-comp-test более быстрым, я хотел бы сделать макрос недоступным в зависимости от условий, связанных с компиляцией ящика. Я хотел бы иметь возможность определить два свойства в частности:
- Почему выполняется макрос: сборка / запуск, документация, тестирование
- Выполнен ли макрос для оптимизированных сборок.
Cargo предоставляет уровень оптимизации для создания сценариев (через переменные среды OPT_LEVEL
а также PROFILE
) но не выставляет режим (Build, Documentation, ..). Тем не менее, кажется, что ни одна из этой информации вообще не подвергается процедурным макросам.