Saltar al contenido

La firma es una decisión de producto

Un registro de auditoría debe conservar el mensaje cuando la función que lo recibe ya haya terminado. En este caso, fn registrar(mensaje: String) expresa que el registro adquiere el valor.

Una función que solo muestra una vista puede aceptar &str. Así el llamador conserva la propiedad y puede seguir usando el mensaje. Si llamador y receptor necesitan copias independientes, alguien tendrá que construir esa segunda copia de forma explícita.

La elección depende de cuánto debe vivir el dato y quién necesita modificarlo o conservarlo. No se resuelve dando por hecho que prestar es siempre mejor.

Un registro debe conservar el mensaje después de la llamada y el llamador ya no lo necesita. ¿Qué contrato eliges?