{ config definition };
// Config used here
#[macro_usage]
struct ... {}
?
Вы хотите привязать к макросу некоторое состояние, которое может принимать разные значения в зависимости от его конфигурации и потенциально влиять на результат каждого отдельного случая применения этого макроса? Кажется, это можно реализовать через build.rs и процедурные макросы. Но в целом идея выглядит не слишком хорошей. Мне кажется, для задачи, которую хочется решить таким образом, лучше найти другое решение.
ну через build.rs можно реализовать примерно что угодно, проблема в том, что это неудобно. А так, я никакую задачу особо не решаю, просто таким образом можно было бы некоторое количество бойлерплейта убрать
Ликвидация бойлерплейта - вполне себе задача, на мой взгляд. А важно именно на этапе компиляции полностью "инстанцировать"? Тогда конфигурацию можно описать как ассоциированные константы некоторого вспомогательного типа (который, видимо, в момент конфигурации должен объявляться), а в применении макроса использовать эти константы через этот тип.
Не знаю пока, как решить вопрос с видимостью вспомогательного типа за пределами модуля, где был применён макрос конфигурации. Возможно, этот вопрос вовсе не стоит решать.
Обсуждают сегодня