Skip to content

Commit 0508341

Browse files
committed
25-rust-LOGS
1 parent c32693a commit 0508341

File tree

1 file changed

+94
-0
lines changed

1 file changed

+94
-0
lines changed

Roadmap/25 - LOGS/rust/kenysdev.rs

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
/*
2+
╔═══════════════════════════════════════╗
3+
║ Autor: Kenys Alvarado ║
4+
║ GitHub: https://github.com/Kenysdev ║
5+
║ 2024 - Rust ║
6+
╚═══════════════════════════════════════╝
7+
-----------------------------------------
8+
* LOGS
9+
-----------------------------------------
10+
Dependencia: https://crates.io/crates/log
11+
https://crates.io/crates/env_logger
12+
13+
[dependencies]
14+
env_logger = "0.11.3"
15+
log = "0.4.21"
16+
*/
17+
18+
use log::{error, warn, info, debug, trace};
19+
20+
fn main() {
21+
/*
22+
* EJERCICIO #1:
23+
* Explora el concepto de "logging" en tu lenguaje. Configúralo y muestra
24+
* un ejemplo con cada nivel de "severidad" disponible.
25+
*/
26+
27+
env_logger::Builder::from_default_env()
28+
.filter_level(log::LevelFilter::Trace)
29+
.init();
30+
31+
debug!("msg {}", "debug");
32+
warn!("msg warn");
33+
info!("msg info");
34+
trace!("msg trace");
35+
error!("msg error");
36+
37+
//____________________________________
38+
println!("EJERCICIO #2");
39+
40+
let mut tasks = Program::new();
41+
42+
tasks.add("a", "1");
43+
tasks.add("b", "2");
44+
tasks.add("c", "3");
45+
46+
tasks.delete("a");
47+
tasks.show_list();
48+
49+
}
50+
51+
/*
52+
* EJERCICIO #2:
53+
* Crea un programa ficticio de gestión de tareas que permita añadir, eliminar
54+
* y listar dichas tareas.
55+
* - Añadir: recibe nombre y descripción.
56+
* - Eliminar: por nombre de la tarea.
57+
* Implementa diferentes mensajes de log que muestren información según la
58+
* tarea ejecutada (a tu elección).
59+
* Utiliza el log para visualizar el tiempo de ejecución de cada tarea.
60+
*/
61+
62+
struct Program {
63+
tasks: std::collections::HashMap<String, String>,
64+
}
65+
66+
impl Program {
67+
fn new() -> Self {
68+
debug!("Se inició instancia.");
69+
Program {
70+
tasks: std::collections::HashMap::new(),
71+
}
72+
}
73+
74+
fn add(&mut self, name: &str, description: &str) {
75+
self.tasks.insert(name.to_string(), description.to_string());
76+
info!("Se agregó una tarea.");
77+
}
78+
79+
fn delete(&mut self, name: &str) {
80+
if self.tasks.remove(name).is_some() {
81+
info!("Tarea '{}' eliminada.", name);
82+
} else {
83+
println!();
84+
warn!("No se encontró la tarea '{}'.", name);
85+
}
86+
}
87+
88+
fn show_list(&self) {
89+
info!("Lista de tareas");
90+
for (task, des) in &self.tasks {
91+
println!("{} -- {}", task, des);
92+
}
93+
}
94+
}

0 commit comments

Comments
 (0)