我需要为我的 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_set
和myvar1_get
。