El drain calcula su largo antes: el MutexGuard no admite el prestamo doble

`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 <noreply@anthropic.com>
Este commit está contenido en:
Munka
2026-08-13 21:21:53 -05:00
padre cac69dd7be
commit 2595faf372

Ver fichero

@@ -229,7 +229,11 @@ fn enviar<R: Runtime>(app: &AppHandle<R>) {
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