общие макросы, среди которых есть процедурные (кое-где нужны, но не делать же ради этого все макросы процедурными, райт?)
И получается, что в воркспейсе должны быть ещё два маленьких отдельных крейта – один для декларативных макросов, второй для процедурных.
Неудобно же, ну.
для декларативных не обязательно делать отдельный крейт стандартный трюк для экспорта макроса где надо выглядит как-то так: mod foo { #[macro_export] #[doc(hidden)] macro_rules! _bar { ... } /// Actual doc goes here pub use crate::_bar as bar; }
а как бы это работало с crates.io и вообще с чем угодно?
Ну, самый ленивый, но всё ещё релевантный вариант – запрещать такие крейты публиковать на crates.io, но разрешить локально. Не всё же пишется для открытой глобальной кодовой базы. Ну хочу я один проект собирать в две либы для своих собственных только мне известных нужд. Зачем мне запрещать?
хорошо, локально так локально локальная зависимость выглядит примерно как foo = { path = "path/to/foo" } если в крейте foo две либы, то как выбрать нужную?
Обсуждают сегодня