summaryrefslogtreecommitdiffstats
path: root/vendor/rust-analyzer-salsa/examples/compiler/main.rs
blob: ed659ef264bf2f8c27db60be9c783a88a679626a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
use std::sync::Arc;

mod compiler;
mod implementation;
mod interner;
mod values;

use self::compiler::Compiler;
use self::implementation::DatabaseImpl;
use self::interner::Interner;

static INPUT_STR: &str = r#"
lorem,ipsum
dolor,sit,amet,
consectetur,adipiscing,elit
"#;

#[test]
fn test() {
    let mut db = DatabaseImpl::default();

    db.set_input_string(Arc::new(INPUT_STR.to_owned()));

    let all_fields = db.all_fields();
    assert_eq!(
        format!("{:?}", all_fields),
        "[Field(0), Field(1), Field(2), Field(3), Field(4), Field(5), Field(6), Field(7)]"
    );
}

fn main() {
    let mut db = DatabaseImpl::default();

    db.set_input_string(Arc::new(INPUT_STR.to_owned()));

    for field in db.all_fields().iter() {
        let field_data = db.lookup_intern_field(*field);
        println!("{:?} => {:?}", field, field_data);
    }
}