Les pointeurs intelligents peuvent sembler limités, mais ils peuvent être utilisés de manière très puissante avec les structures que nous venons de voir.
Rc<Vec<Foo>> - Permet de cloner plusieurs pointeurs intelligents pouvant
emprunter le même vecteur de données immuables. Pour rappel Rc place les
données sur le tas.
Rc<RefCell<Foo>> - Permet à plusieurs pointeurs intelligents d'emprunter
mutuellement ou immuablement la même structure Foo.
Arc<Mutex<Foo>> - Permet à un pointeur intelligent de verrouiller
temporairement une donnée (celle-ci ne pourra plus être emprunté mutablement
ou immuablement) de manière exclusive à un thread du CPU (les autres threads
n'y auront pas accès).
Détail de la mémoire: