Message Passing
Request/Response Pair
Correlate by Id
Request and response messages often carry an id so a receiver can connect the reply to the original request.
Program
Play the program to choose a request id and build the matching response.
request_response_pair.rs
fn main() {
let request_id = ;
let request = Request { id: request_id, body: "status" };
let response = respond(request);
println!("{}:{}", response.id, response.body);
}
struct Request {
id: i32,
body: &'static str,
}
struct Response {
id: i32,
body: String,
}
fn respond(request: Request) -> Response {
let body = format!("ok:{}", request.body);
Response { id: request.id, body }
}
fn main() {
let request_id = ;
let request = Request { id: request_id, body: "status" };
let response = respond(request);
println!("{}:{}", response.id, response.body);
}
struct Request {
id: i32,
body: &'static str,
}
struct Response {
id: i32,
body: String,
}
fn respond(request: Request) -> Response {
let body = format!("ok:{}", request.body);
Response { id: request.id, body }
}
fn main() {
let request_id = ;
let request = Request { id: request_id, body: "status" };
let response = respond(request);
println!("{}:{}", response.id, response.body);
}
struct Request {
id: i32,
body: &'static str,
}
struct Response {
id: i32,
body: String,
}
fn respond(request: Request) -> Response {
let body = format!("ok:{}", request.body);
Response { id: request.id, body }
}
request id
`id` is copied from the request to the response so callers can correlate messages.
payload
`body` is transformed from request text into response text.
ownership
`respond` consumes the request and returns a new response value.