rust-macros

    1熱度

    1回答

    我對try!和?宏有極大的困難,我開始懷疑現實的結構。我舉起straight from the rust-docs下面的例子,它仍然在我的臉上炸開。 代碼: pub use std::fs::File; pub use std::io::prelude::*; fn main() { let mut file: File = File::open("foo.txt")?;

    0熱度

    1回答

    我需要檢查標識符是否以下劃線開頭。這不起作用: #[macro_export] macro_rules! UNDECORED { (_$_i:ident) => {... do something if underscored}; ($_i:ident) => {... do something else}; } 錯誤在哪裏?

    10熱度

    1回答

    我正在讀一本關於Rust的書,並開始玩Rust macros。所有的元變類型都在這裏解釋並且有例子,除了最後一個 - tt。根據這本書,它是一個「單一的令牌樹」。我很好奇,它是什麼,它用於什麼?你能舉個例子嗎?

    1熱度

    2回答

    在許多語言中,一個常見的構造函數用法是初始化使用的語法類似這樣的僞對象的值: constructor Foo(args...) { for arg { object.arg = arg } } 鏽起初似乎也不例外。爲struct許多impl包括一個名爲new拉上一系列有序的參數到結構領域的構造函數: struct Circle { x: i32,

    0熱度

    2回答

    我正在創建一個匹配兩個表達式和一個標識符的宏。我希望能夠忽略標識符,如果不需要,但編譯器似乎抱怨,如果我在那裏使用_。 我的宏: macro_rules! if_some { ($x:expr, $id:ident, $expr:expr) => { match $x { None => None, Some($id) => Some($expr)

    6熱度

    1回答

    我想編寫一個打印「OK」的宏,然後在方法中返回self。這是我的第一個宏,所以我想這一點,以爲它只是使事情就像一個文本替換,但它失敗: macro_rules! print_ok_and_return_self { () => { println!("OK"); self } } fn main() { let a = A{};

    2熱度

    1回答

    我正在Rust開發一種小語言。爲了提高性能,我想爲x86使用fastcall調用約定。 ARM不支持"fastcall" ABI。 對於x86: fn add_primitive(&mut self, name: &str, action: extern "fastcall" fn(&mut Self)) { ... } extern "fastcall" fn a_primiti