use borrowscope_runtime::*;
fn main() {
reset();
println!("=== Async Tracking Example ===\n");
println!("Tracking async block...");
track_async_block_enter(1, "main.rs:15:5");
let _data = track_new("data", vec![1, 2, 3]);
println!("Tracking await expression...");
track_await_start(1, "fetch_data", "main.rs:20:9");
track_await_end(1, "main.rs:20:9");
track_await_start(2, "process_result", "main.rs:25:9");
track_await_end(2, "main.rs:25:9");
track_drop("data");
track_async_block_exit(1, "main.rs:30:5");
println!("\n=== Recorded Events ===");
for event in get_events() {
println!("{:?}", event);
}
println!("\n=== JSON Export ===");
println!("{}", serde_json::to_string_pretty(&get_events()).unwrap());
}