7个版本

0.0.7 2024年5月31日
0.0.6 2024年4月10日
0.0.5 2024年1月3日
0.0.4 2023年12月20日
0.0.1 2023年2月25日

#1167 in 过程宏


4 个crate中使用(通过 ezno-parser

MIT 许可证

8KB
139 代码行

visiting-proc-macro lines of code

一个生成AST节点可变和不可变 访问 实现的包。

访问者是实现一个特质的实现者,该特质的函数在每一个节点上被调用。

此模块针对 解析器 模块,并具有扩展数据的能力。

用法

use visitable_derive::Visitable;

#[derive(Visitable)]
struct MyAstNode {
	...
}

属性

visit_self

首先访问所有字段,然后访问自身

#[derive(Visitable)]
#[visit_self]
struct MyAstNode {
	...
}

选项

  • also_visit_first_if 如果条件为真,将额外访问自身
#[derive(Visitable)]
#[visit_self(also_visit_first_if="self.predicate()"]
struct MyAstNode {
	...
}

impl MyAstNode {
	fn predicate(&self) -> bool {
		...
	}
}

visit_skip_field

跳过访问字段。如果类型没有实现 Visitable

#[derive(Visitable)]
struct MyAstNode {
	#[visit_skip_field]
	a: String
}

依赖项

~325–770KB
~18K SLoC