1 unstable release
0.3.0-alpha.1 | Mar 23, 2023 |
---|
#135 in Database implementations
4,106 downloads per month
24KB
559 lines
syn-select
Lightweight path selector for searching Rust code.
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());
}
Wildcards
Using _
as a path segment in a wildcard will match any element in that position.
For example, in the following:
mod imp {
struct H;
}
mod imp2 {
struct H;
}
The selector _::H
would match both structs named H
.
lib.rs
:
Library to get a specific element by path in Rust code.
Usage
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);
Dependencies
~295–730KB
~18K SLoC