Reinventarlo
Diseña el contrato antes de escribir código
Quieres una función que calcule la longitud de un mensaje sin consumirlo. El llamador debe poder imprimir el mismo mensaje después.
Decide primero quién conserva el recurso y durante cuánto tiempo se observa. Después escribe la firma: fn longitud(texto: &str) -> usize. Al llamarla con &s, Rust puede convertir el préstamo del String en una vista &str.
No necesitas devolver el String ni clonarlo. El dato que vuelve es un número. Ordena los pasos de una estrategia que respete ese contrato.