我需要在鏈接庫函式之上做一些宏魔術才能作業(不能確切地說出什么,NDA 和所有)。我正在嘗試將塊決議為 ItemForeignMod,因為它是我認為合適的唯一結構。我這樣做是這樣的:
#[proc_macro_attribute]
pub fn bound_block(
_attr: proc_macro::TokenStream,
item: proc_macro::TokenStream,
) -> proc_macro::TokenStream {
let item = parse_macro_input!(item as ItemForeignMod);
...
}
但它會恐慌:
error: expected `(`, found `<function_name>`
--> <project>/src/bindings/<bound_library>.rs:4491:12
|
4491 | pub fn <function_name>(
| ^^^^^^^^^^^^^^^ expected `(`
外部塊之一的示例(由 rust-bindgen 生成):
#[<library>_macros::bound_block]
extern "C" {
pub fn <function>() -> <ReturnCode>;
}
我對 proc 宏還是比較陌生,我有一個專案我大量使用它們,但這并不嚴重。我還試圖通過 syn 源代碼查看我可能搞砸的地方,但似乎無法發現任何東西。我的知識在這個部門肯定是欠缺的。
uj5u.com熱心網友回復:
是內部函式中的錯誤,但編譯器讓我對錯誤的根源感到困惑。現在一切都好
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/485294.html
標籤:解析 锈 代码生成 rust-proc-宏
上一篇:ggplot2中回歸模型的殘差圖
