Rc
Rc es un puntero compartido de referencia contada. Utilízalo cuando necesites hacer referencia a los mismos datos desde varios lugares:
use std::rc::Rc; fn main() { let mut a = Rc::new(10); let mut b = Rc::clone(&a); println!("a: {a}"); println!("b: {b}"); }
- Consulta 
ArcyMutexsi te encuentras en un contexto multihilo. - Puedes degradar un puntero compartido en un puntero 
Weakpara crear ciclos que se abandonarán. 
- El recuento de 
Rcasegura que el valor que contiene sea válido mientras haya referencias. Rcen Rust es comostd::shared_ptren C++.Rc::clonees simple: crea un puntero en la misma asignación y aumenta el recuento de referencias. No hace clones completos y, por lo general, se puede ignorar cuando se buscan problemas de rendimiento en el código.make_mutclona el valor interno si es necesario (“copiar al escribir”) y devuelve una referencia mutable.- Comprueba el recuento de referencias con 
Rc::strong_count. Rc::downgradeofrece un objeto de referencia contada baja para crearRc::downgradeofrece un objeto de referencia contada débil para crearRefCell).