Можно ли иметь один ящик с процедурными макросами и логикой? - PullRequest
0 голосов
/ 22 октября 2018

Если вы хотите поделиться библиотекой, в которой используется процедурный макрос, неизбежен ли подход с двумя ящиками foo / foo_derive *? 1003 *

Я хотел бы предоставить ящик с логикой и макросы.Первое, что я попробовал, было:

my_proc_macro
├── Cargo.toml
├── src/lib.rs
└── my_crate
    ├── Cargo.toml
    └── src/lib.rs

В ящике my_proc_macro я попытался pub use my_crate::*;, но это запрещено: компилятор отказался его собрать.

Возможно ли сделать это наоборот?Я имею в виду: импортировать процедурный ящик макросов в библиотеку и затем экспортировать макрос?

1 Ответ

0 голосов
/ 22 октября 2018

Реэкспорт макросов довольно прост.Просто используйте

#[macro_use]
extern crate my_proc_macro;

в корне my_crate.

Ящик serde можно использовать таким образом при включении функции serde_derive.

В выпуске 2018 года вы также можете явным образом повторно экспортировать макросы proc, используя use объявления .

...