我可以将变量名称附加到宏中的setter和getter函数名称吗?

时间:2018-02-07 14:59:53

标签: rust rust-macros

我需要为我的FFI代码生成setter和getter。

有没有办法可以将变量名附加到宏中的setter和getter函数名?我尝试了stringify!($var + set),但它产生了一堆错误。

将模具隐藏在每个变量的模块中是唯一的方法吗?

macro_rules! gen {
    ($var:ident: $type:ident) => {
        pub fn set(new_val: $type) {
            unsafe { $var = new_val; }
        }
        pub fn get() -> $type {
            unsafe { $var }
        }
    }
}
gen!(myvar1: u32);
gen!(myvar2: i32);

对于myvar1,setter和getter分别为myvar1_setmyvar1_get

0 个答案:

没有答案