1 个不稳定版本
0.1.0 | 2022年9月4日 |
---|
#1544 在 #proc-macro
在 2 个crate中使用(通过impl_serialize)
4KB
Unhygienic2
一个简单的宏,用于消除宏的 hygiene 特性。它将输入字符串化,然后在调用者的上下文中重新解析。
基于 unhygienic 和 proc_macro_hack 开发的第一个版本。由于Rust 1.45版本已提供原生的 #[proc_macro] 支持,因此不再需要 proc_macro_hack。
示例
use unhygienic2::unhygienic;
macro_rules! declare {
($exp:expr) => {
unhygienic! {
fn func() -> i32 {
let a = 5;
$exp
}
}
}
}
declare!({ a + 1 });
fn main() {
assert_eq!(func(), 6);
}
lib.rs
:
一个简单的宏,用于消除宏的 hygiene 特性。它将输入字符串化,然后在调用者的上下文中重新解析。第一个版本基于 unhygienic 和 proc_macro_hack 开发的。由于Rust 1.45版本已提供原生的 #[proc_macro] 支持,因此不再需要 proc_macro_hack。
示例
use unhygienic2::unhygienic;
macro_rules! declare {
($exp:expr) => {
unhygienic! {
fn func() -> i32 {
let a = 5;
$exp
}
}
}
}
declare!({ a + 1 });
fn main() {
assert_eq!(func(), 6);
}