[英]How to pass a whole crate to a procedural macro?
我試圖將我的整個箱子傳遞給程序宏。
我已經嘗試將此代碼放在我的lib.rs
:
#![my_macro]
#![feature(proc_macro)]
extern crate my_macro;
use my_macro::{my_macro};
並失敗: error: cannot find attribute macro 'my_macro' in this scope
我也嘗試將宏調用放在use
子句下面:
#![feature(proc_macro)]
extern crate my_macro;
use mock_macro::{my_macro};
#![my_macro]
但也失敗了: error: an inner attribute is not permitted in this context
有可能嗎? (我知道syn
有解析整個箱子的功能)
只要您啟用feature(extern_absolute_paths)
並使用屬性宏的絕對路徑,就可以從Rust 1.25.0開始每晚執行此操作。
#![::my_crate::my_macro]
#![feature(extern_absolute_paths, proc_macro)]
在板條根上調用的屬性宏問題正在生銹/銹蝕#41430中被跟蹤。 隨着RFC 2126的實現進一步發展,我們希望消除必須使用絕對路徑指定屬性的限制。 您也可能遇到其他限制,特別是嘗試將函數從crate級別的過程宏注入包中當前會使編譯器崩潰 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.