Bonjour

Je me tourne vers vous pour un avoir un éclairage sur le fonctionnement du crate mysql [mysql ="23.0.1"] suite à des recherche j'ai fait le bout fonctionnel de code suivant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 
use mysql::Pool;
use mysql::prelude::*;
 
#[derive(Debug)]
struct RcpSql {
    a: String,
    b: i32,
    c: i32,
}
 
fn read_sql(){
 
    let url = "mysql://test_it:yes@localhost:3306/db_test";
    let pool = Pool::new(url).expect("not cool the db link is down");
    let mut conn = pool.get_conn().expect("am not connected");
 
    // aller lire l'ensemble des ligne de la table
    let vues = conn.query_map(
        "SELECT * FROM test_it",| (a,b,c)|{
            RcpSql {a,b,c}
        }
    ).expect("I found nothing");
 
    // envoyer le resulat dans un vecteur
    println!("{:?}",vues);
}
 
fn main(){
 
    read_sql();
}
je récupère bien ce que je veux mais j'ai un qui me dit que mes variables a,b,c ne sont jamais lues

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
warning: fields `a`, `b`, and `c` are never read
 --> src\main.rs:6:5
  |
5 | struct RcpSql {
  |        ------ fields in this struct
6 |     a: String,
  |     ^
7 |     b: i32,
  |     ^
8 |     c: i32,
  |     ^
  |
  = note: `RcpSql` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
  = note: `#[warn(dead_code)]` on by default
 
warning: `readdb` (bin "readdb") generated 1 warning
    Finished dev [unoptimized + debuginfo] target(s) in 2.09s
     Running `target\debug\readdb.exe`
[RcpSql { a: "test1", b: 1, c: 2 }, RcpSql { a: "test2", b: 22, c: 33 }, RcpSql { a: "test3", b: 7, c: 8 }, RcpSql { a: "test4", b: 44, c: 55 }]
Si j'essaye de supprimer un morceau ou de modifier la je génère des erreurs bloquantes

Avez-vous une lueur d'explication pour moi ?

Merci Beaucoup