Saltar al contenido

Un buffer que entrega su contenido y se reinicia

La documentación oficial de std::mem::take presenta un Buffer<T> cuyo método recibe &mut self, entrega el Vec<T> anterior y deja un vector vacío.

Intentar sacar self.buf directamente mueve un campo desde un valor prestado. take resuelve la operación con un reemplazo válido, sin exigir Clone a los elementos. El receptor del vector devuelto pasa a poseer sus valores.

Ordena la cadena: localizar el campo mediante un préstamo mutable, preparar el reemplazo, intercambiar y devolver el contenido anterior.

Es un caso publicado en la biblioteca estándar, no un incidente inventado. Fuente y ejemplo completo: documentación de std::mem::take.

Ordena la operación get_and_reset con mem::take.

Selecciona las operaciones en orden. Puedes reiniciar la secuencia.