1

我需要为我的 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);

对于myvar1setter 和 getter 将分别是myvar1_setmyvar1_get

4

0 回答 0