main.rs

 1use fs::Fs;
 2use gpui::{AppContext, Application};
 3fn main() {
 4    let Some(path_to_read) = std::env::args().nth(1) else {
 5        println!("Expected path to read as 1st argument.");
 6        return;
 7    };
 8
 9    let _ = Application::headless().run(|cx| {
10        let fs = fs::RealFs::new(None, cx.background_executor().clone());
11        cx.background_spawn(async move {
12            let timer = std::time::Instant::now();
13            let result = fs.load_bytes(path_to_read.as_ref()).await;
14            let elapsed = timer.elapsed();
15            if let Err(e) = result {
16                println!("Failed `load_bytes` after {elapsed:?} with error `{e}`");
17            } else {
18                println!("Took {elapsed:?} to read {} bytes", result.unwrap().len());
19            };
20            let timer = std::time::Instant::now();
21            let result = fs.metadata(path_to_read.as_ref()).await;
22            let elapsed = timer.elapsed();
23            if let Err(e) = result {
24                println!("Failed `metadata` after {elapsed:?} with error `{e}`");
25            } else {
26                println!("Took {elapsed:?} to query metadata");
27            };
28            std::process::exit(0);
29        })
30        .detach();
31    });
32}