From 2595faf37248f9636ce30de87ef15bf57bb39000 Mon Sep 17 00:00:00 2001 From: Munka Date: Thu, 13 Aug 2026 21:21:53 -0500 Subject: [PATCH] El drain calcula su largo antes: el MutexGuard no admite el prestamo doble MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `n.cola.drain(0..enviados.min(n.cola.len()))` no compila: el argumento pide un prestamo inmutable de `n.cola` cuando ya esta prestado mutable, y a traves del MutexGuard —un deref explicito, no un autoref— el two-phase borrow no lo cubre (E0502, el UNICO error que encontro el CI en todo el sensor). Co-Authored-By: Claude Fable 5 --- src-tauri/src/tracker.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src-tauri/src/tracker.rs b/src-tauri/src/tracker.rs index 5e82bc0..aa7b772 100644 --- a/src-tauri/src/tracker.rs +++ b/src-tauri/src/tracker.rs @@ -229,7 +229,11 @@ fn enviar(app: &AppHandle) { pintar_menu(app, "sin vincular", &cfg); return; } - n.cola.drain(0..enviados.min(n.cola.len())); + // El largo se calcula ANTES del drain: dentro del argumento sería un préstamo inmutable + // mientras `n.cola` ya está prestado mutable — a través del MutexGuard (un deref + // explícito) el two-phase borrow no lo cubre, y no compila. + let hasta = enviados.min(n.cola.len()); + n.cola.drain(0..hasta); if n.cola.len() > MAX_COLA_LOTES { let sobra = n.cola.len() - MAX_COLA_LOTES; n.cola.drain(0..sobra); // sin red por semanas: se suelta lo más viejo, no lo nuevo