Rust: Concurrencia sin Miedo | Proyecto final: Detector de rostros - Barra de Progreso | Ep. 23
iDesoft Learn Español
0:00 / 0:00
Rust: Concurrencia sin Miedo | Proyecto final: Detector de rostros - Barra de Progreso | Ep. 23
72 просмотра · 2 нед. назад
iDesoft Learn Español
216 подписчиков
72 просмотра · 2 нед. назад
Llegamos al último video del proyecto final de Rust: Concurrencia sin Miedo. En este episodio implementamos el componente Progress Report, la pieza que da feedback visual al usuario mientras el detector de rostros procesa imágenes en paralelo. Escuchamos el canal de progreso con sus dos variantes (`ScanCompleted` e `ImageProcessed`), acumulamos el total de imágenes, las procesadas y los rostros encontrados en un `ProgressSummary`, y mostramos todo con una barra de progreso animada usando la crate indicatif (spinner, barra coloreada, cronómetro y mensaje dinámico).
Lo que aprenderás:
Escuchar un canal de Tokio con `while let Some(event) = rx.recv().await` y hacer `match` sobre las variantes del enum de progreso.
Construir una barra de progreso con `indicatif`.
Enviar mensajes a la barra con `set_message` en lugar de `println!`.
Incrementar el progreso por cada imagen procesada y definir la longitud total.
Integrar el Progress Reporter dentro de la función `run` del módulo `app` y devolver el `ProgressSummary`.
Requisitos:
Conocimientos básicos de Rust y ownership.
Familiaridad con canales mpsc, `Arc`/`Mutex` y programación asíncrona con Tokio.
Haber seguido los episodios anteriores del proyecto final del curso.
Recursos:
Código fuente: https://github.com/iDesoftSystems/r3y...
Crate indicatif: https://docs.rs/indicatif
Tokio (runtime y canales): https://docs.rs/tokio
Dataset WiderFace: http://shuoyang1213.me/WIDERFACE
0:00 - Introducción
0:38 - Progress Reporter: recap y firma
1:41 - Canal de progreso y eventos
4:43 - Pattern matching de eventos
9:37 - ProgressSummary
19:40 - Dataset de imágenes (WiderFace)
24:00 - Ejecución y detección de rostros
27:16 - Barra de progreso con indicatif
44:17 - Resumen final y cierre del curso