main.rs

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