Replay Composition
Client Worker Project Replay
Trace one Rust execution that starts in a client module, calls a worker module, and returns a response to the caller.
Project Entry
Play the program to watch execution move from request_client.rs into request_worker.rs and then back to the entry file.
request_client.rs
mod request_worker;
fn main() {
let command = ;
let request_id = 42;
let response = request_worker::handle_request(command);
let ticket = request_id + command.len();
println!("ticket={}", ticket);
println!("body={}", response);
}
mod request_worker;
fn main() {
let command = ;
let request_id = 42;
let response = request_worker::handle_request(command);
let ticket = request_id + command.len();
println!("ticket={}", ticket);
println!("body={}", response);
}
mod request_worker;
fn main() {
let command = ;
let request_id = 42;
let response = request_worker::handle_request(command);
let ticket = request_id + command.len();
println!("ticket={}", ticket);
println!("body={}", response);
}
source panels
Each Rust source file has its own panel because both files participate in the same traced execution.
data flow
The Variables panel is derived from the trace: the selected command moves into the worker function, the worker chooses a response, and the caller prints it.
variants
The command selector rebuilds the traced project for each option, so the source and replay both reflect the selected command.