Retour à la leçon
Mission

Mission : reparer une pipeline de traitement de commandes

Diagnostiquer une chaine d'erreurs de move dans un pipeline de fonctions et proposer une correction coherente avec l'ownership.

Contexte

Un dev junior a ecrit ce pipeline de traitement de commandes, qui refuse de compiler avec plusieurs erreurs 'value borrowed after move' en cascade :

rust
fn journaliser(commande: String) {
    println!("log: {}", commande);
}

fn facturer(commande: String) -> String {
    format!("facture pour {}", commande)
}

fn main() {
    let commande = String::from("commande-42");
    journaliser(commande);
    let facture = facturer(commande);
    println!("{}", facture);
}

Il te demande de l'aider a comprendre pourquoi, et de proposer la version corrigee la plus idiomatique.