Serialization turns typed values into text. A small CSV row can be built directly from fixed fields.

Program

Play the program to choose a quantity and watch the record become a comma-separated row.

quantity
csv_row_builder.rs
Replay: real traced execution (multi-file project)
fn main() {
    let quantity = 3;
    let item = ("book", quantity, 12);
    let row = csv_row(item.0, item.1, item.2);
    println!("{row}");
}

fn csv_row(name: &str, quantity: i32, price: i32) -> String {
    format!("{name},{quantity},{price}")
}
fn main() {
    let quantity = 1;
    let item = ("book", quantity, 12);
    let row = csv_row(item.0, item.1, item.2);
    println!("{row}");
}

fn csv_row(name: &str, quantity: i32, price: i32) -> String {
    format!("{name},{quantity},{price}")
}
fn main() {
    let quantity = 5;
    let item = ("book", quantity, 12);
    let row = csv_row(item.0, item.1, item.2);
    println!("{row}");
}

fn csv_row(name: &str, quantity: i32, price: i32) -> String {
    format!("{name},{quantity},{price}")
}
  1. quantity ← 3, item ← ("book", 3, 12)

    1fn main() {2    let quantit→ 3y = 3; //@quantity=3, 1, 53    let ite→ ("book", 3, 12)m = ("book", quantit3y, 12);4    let row = csv_row(item."book"0, item.31, item.122);5    println!("{row}");
  2. row ← "book,3,12"

    3    let item = ("book", quantity, 12);4    let ro→ "book,3,12"w = csv_row(item."book"0, item.31, item.122);5    println!("{row}");6}
    outputbook,3,12
  1. quantity ← 1, item ← ("book", 1, 12)

    1fn main() {2    let quantit→ 1y = 1;3    let ite→ ("book", 1, 12)m = ("book", quantit1y, 12);4    let row = csv_row(item."book"0, item.11, item.122);5    println!("{row}");
  2. row ← "book,1,12"

    3    let item = ("book", quantity, 12);4    let ro→ "book,1,12"w = csv_row(item."book"0, item.11, item.122);5    println!("{row}");6}
    outputbook,1,12
  1. quantity ← 5, item ← ("book", 5, 12)

    1fn main() {2    let quantit→ 5y = 5;3    let ite→ ("book", 5, 12)m = ("book", quantit5y, 12);4    let row = csv_row(item."book"0, item.51, item.122);5    println!("{row}");
  2. row ← "book,5,12"

    3    let item = ("book", quantity, 12);4    let ro→ "book,5,12"w = csv_row(item."book"0, item.51, item.122);5    println!("{row}");6}
    outputbook,5,12
serialization Serialization converts typed program values into a text representation.
tuple fields `item.0`, `item.1`, and `item.2` read the record fields in order.
format! `format!` builds the serialized row without printing immediately.