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
15
16
17
use ra_ap_syntax::{AstNode, Edition, SourceFile, ast};

pub(super) fn parse_expr(source: &str) -> Option<ast::Expr> {
    let fixture = format!("fn fixture() {{ let value = {source}; }}");
    let parse = SourceFile::parse(&fixture, Edition::Edition2024);

    if !parse.errors().is_empty() {
        return None;
    }

    parse
        .tree()
        .syntax()
        .descendants()
        .find_map(ast::LetStmt::cast)?
        .initializer()
}