rulewright 0.1.1

Executable engineering standards for Rust workspaces
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
use ra_ap_syntax::ast;

// #rw(fn: rust_recursive_fn) syntax path qualifier depth is parser-bounded and naturally recursive
pub(super) fn path_segments(path: &ast::Path) -> Vec<String> {
    let mut segments = path
        .qualifier()
        .map_or_else(Vec::new, |qualifier| path_segments(&qualifier));

    if let Some(name) = path.segment().and_then(|segment| segment.name_ref()) {
        segments.push(name.text().to_string());
    }

    segments
}