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