2个版本
0.1.1 | 2023年8月5日 |
---|---|
0.1.0 | 2019年1月19日 |
#253 in 过程宏
26,846 每月下载量
在 70 个crate中(直接使用9个) 使用
8KB
gensym
使用过程宏和UUID创建宏的唯一标识符
示例
macro_rules! gen_fn {
($a:ty, $b:ty) => {
gensym::gensym!{ _gen_fn!{ $a, $b } }
};
}
macro_rules! _gen_fn {
($gensym:ident, $a:ty, $b:ty) => {
fn $gensym(a: $a, b: $b) {
unimplemented!()
}
};
}
mod test {
gen_fn!{ u64, u64 }
gen_fn!{ u64, u64 }
}
lib.rs
:
使用过程宏和UUID创建宏的唯一标识符
示例
macro_rules! gen_fn {
($a:ty, $b:ty) => {
gensym::gensym!{ _gen_fn!{ $a, $b } }
};
}
macro_rules! _gen_fn {
($gensym:ident, $a:ty, $b:ty) => {
fn $gensym(a: $a, b: $b) {
unimplemented!()
}
};
}
mod test {
gen_fn!{ u64, u64 }
gen_fn!{ u64, u64 }
}
使用Span::call_site
生成一个唯一标识符,并将其作为宏调用的第一个参数插入,后面跟着一个逗号。
依赖项
~0.5–1MB
~21K SLoC