Retour à la leçonMission
Mission : sauver une struct de resume de session qui ne compile pas
Diagnostiquer une erreur de lifetime manquant sur une struct qui stocke une reference, et l'annoter correctement.
Contexte
Un collegue veut stocker un extrait du dernier message d'un utilisateur sans dupliquer la chaine complete, pour economiser de la memoire sur des millions de sessions actives. Il ecrit :
rust
struct ResumeSession {
extrait: &str,
}
fn creer_resume(message: &str) -> ResumeSession {
ResumeSession { extrait: &message[..10.min(message.len())] }
}Le compilateur refuse avec 'missing lifetime specifier'. Il ne comprend pas pourquoi une simple reference dans une struct pose probleme, alors que ses fonctions avec &str en parametre compilent sans annotation ailleurs dans son code.