8 个版本
0.3.0 | 2023 年 5 月 22 日 |
---|---|
0.2.1 | 2022 年 6 月 16 日 |
0.2.0 | 2019 年 8 月 23 日 |
0.1.4 | 2019 年 2 月 11 日 |
0.1.2 | 2019 年 1 月 30 日 |
#243 在 数据库实现 中
42,179 每月下载量
用于 8 个 Crates (4 个直接使用)
24KB
559 行
syn-select
轻量级 Rust 代码路径选择器。
mod a {
mod b {
trait C {
fn d(self) {}
fn f() {}
}
}
}
fn main() {
let src_file = syn::parse_str(include_str!("./rs")).unwrap();
// This will print out the trait `C`, limited to only function `d`.
dbg!(syn_select::select("a::b::C::d", &src_file).unwrap());
}
通配符
在通配符中使用 _
作为路径段将匹配该位置的任何元素。例如,在以下
mod imp {
struct H;
}
mod imp2 {
struct H;
}
选择器 _::H
将匹配名为 H
的所有结构。
lib.rs
:
通过路径在 Rust 代码中获取特定元素的库。
用法
let file: syn::File = syn::parse_str(
r#"
mod a {
mod b {
trait C {
fn d(self) {}
fn f() {}
}
}
}"#).unwrap();
let results = syn_select::select("a::b::C::d", &file).unwrap();
assert_eq!(results.len(), 1);
依赖项
~265–690KB
~17K SLoC