[INFO] cloning repository https://github.com/lyv28/LoadRust_final
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/lyv28/LoadRust_final" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flyv28%2FLoadRust_final", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flyv28%2FLoadRust_final'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 13628bcb980199f297602277eca740da20c6315a
[INFO] checking lyv28/LoadRust_final against master#779e19d8baa3e3625bd4fc5c85cbb2ad47b43155 for pr-147589-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Flyv28%2FLoadRust_final" "/workspace/builds/worker-5-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc1/source'...
[INFO] [stderr] done.
[INFO] [stderr] Updating files:  45% (866/1915)
Updating files:  46% (881/1915)
Updating files:  47% (901/1915)
Updating files:  48% (920/1915)
Updating files:  49% (939/1915)
Updating files:  50% (958/1915)
Updating files:  51% (977/1915)
Updating files:  52% (996/1915)
Updating files:  53% (1015/1915)
Updating files:  53% (1030/1915)
Updating files:  54% (1035/1915)
Updating files:  55% (1054/1915)
Updating files:  56% (1073/1915)
Updating files:  57% (1092/1915)
Updating files:  58% (1111/1915)
Updating files:  59% (1130/1915)
Updating files:  59% (1140/1915)
Updating files:  60% (1149/1915)
Updating files:  61% (1169/1915)
Updating files:  61% (1173/1915)
Updating files:  62% (1188/1915)
Updating files:  63% (1207/1915)
Updating files:  64% (1226/1915)
Updating files:  65% (1245/1915)
Updating files:  66% (1264/1915)
Updating files:  67% (1284/1915)
Updating files:  68% (1303/1915)
Updating files:  69% (1322/1915)
Updating files:  70% (1341/1915)
Updating files:  71% (1360/1915)
Updating files:  72% (1379/1915)
Updating files:  73% (1398/1915)
Updating files:  74% (1418/1915)
Updating files:  75% (1437/1915)
Updating files:  76% (1456/1915)
Updating files:  77% (1475/1915)
Updating files:  78% (1494/1915)
Updating files:  79% (1513/1915)
Updating files:  80% (1532/1915)
Updating files:  81% (1552/1915)
Updating files:  82% (1571/1915)
Updating files:  83% (1590/1915)
Updating files:  84% (1609/1915)
Updating files:  85% (1628/1915)
Updating files:  86% (1647/1915)
Updating files:  87% (1667/1915)
Updating files:  88% (1686/1915)
Updating files:  89% (1705/1915)
Updating files:  90% (1724/1915)
Updating files:  91% (1743/1915)
Updating files:  92% (1762/1915)
Updating files:  92% (1763/1915)
Updating files:  93% (1781/1915)
Updating files:  94% (1801/1915)
Updating files:  95% (1820/1915)
Updating files:  96% (1839/1915)
Updating files:  97% (1858/1915)
Updating files:  98% (1877/1915)
Updating files:  99% (1896/1915)
Updating files: 100% (1915/1915)
Updating files: 100% (1915/1915), done.
[INFO] started tweaking git repo https://github.com/lyv28/LoadRust_final
[INFO] finished tweaking git repo https://github.com/lyv28/LoadRust_final
[INFO] tweaked toml for git repo https://github.com/lyv28/LoadRust_final written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/lyv28/LoadRust_final on toolchain 779e19d8baa3e3625bd4fc5c85cbb2ad47b43155
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/lyv28/LoadRust_final already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded quanta v0.9.3
[INFO] [stderr]   Downloaded governor v0.4.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] f9e4d4f18720d8656b574216e97836ff79059d232f18d8106e89b5148971264e
[INFO] running `Command { std: "docker" "start" "-a" "f9e4d4f18720d8656b574216e97836ff79059d232f18d8106e89b5148971264e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f9e4d4f18720d8656b574216e97836ff79059d232f18d8106e89b5148971264e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f9e4d4f18720d8656b574216e97836ff79059d232f18d8106e89b5148971264e", kill_on_drop: false }`
[INFO] [stdout] f9e4d4f18720d8656b574216e97836ff79059d232f18d8106e89b5148971264e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+779e19d8baa3e3625bd4fc5c85cbb2ad47b43155" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c4bc06d7d035f925a1cf9b34ec65faeb66e90dd368a9980d5c6cf763ccbf9bed
[INFO] running `Command { std: "docker" "start" "-a" "c4bc06d7d035f925a1cf9b34ec65faeb66e90dd368a9980d5c6cf763ccbf9bed", kill_on_drop: false }`
[INFO] [stderr]     Checking smallvec v1.13.1
[INFO] [stderr]     Checking socket2 v0.5.6
[INFO] [stderr]     Checking signal-hook-registry v1.4.1
[INFO] [stderr]     Checking num_cpus v1.16.0
[INFO] [stderr]     Checking mio v0.8.11
[INFO] [stderr]     Checking getrandom v0.2.12
[INFO] [stderr]     Checking raw-cpuid v10.7.0
[INFO] [stderr]     Checking http-body v0.4.6
[INFO] [stderr]    Compiling syn v2.0.52
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking parking_lot_core v0.9.9
[INFO] [stderr]     Checking parking_lot v0.12.1
[INFO] [stderr]     Checking dashmap v5.5.3
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking quanta v0.9.3
[INFO] [stderr]    Compiling futures-macro v0.3.30
[INFO] [stderr]    Compiling tokio-macros v2.2.0
[INFO] [stderr]     Checking tokio v1.36.0
[INFO] [stderr]     Checking futures-util v0.3.30
[INFO] [stderr]     Checking futures-executor v0.3.30
[INFO] [stderr]     Checking futures v0.3.30
[INFO] [stderr]     Checking governor v0.4.2
[INFO] [stderr]     Checking tokio-util v0.7.10
[INFO] [stderr]     Checking h2 v0.3.24
[INFO] [stderr]     Checking hyper v0.14.28
[INFO] [stderr]     Checking loadbalancer v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/backends2.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |       /// Crée un service HTTP qui utilise `handle_request` pour chaque requête.
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 15 | /     let make_svc = make_service_fn(|_conn| async {
[INFO] [stdout] 16 | |         Ok::<_, hyper::Error>(service_fn(handle_request))
[INFO] [stdout] 17 | |     });
[INFO] [stdout]    | |_______- rustdoc does not generate documentation for statements
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/backends2.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     /// Lie le serveur à l'adresse spécifiée et commence à écouter les requêtes.
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 20 |     let server = Server::bind(&addr).serve(make_svc);
[INFO] [stdout]    |     ------------------------------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/backends2.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 |       /// Gère les erreurs potentielles du serveur.
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 24 | /     if let Err(e) = server.await {
[INFO] [stdout] 25 | |         eprintln!("Erreur serveur: {}", e);
[INFO] [stdout] 26 | |     }
[INFO] [stdout]    | |_____- rustdoc does not generate documentation for expressions
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::convert::Infallible`
[INFO] [stdout]  --> src/main.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::convert::Infallible;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/backends.rs:13:1
[INFO] [stdout]    |
[INFO] [stdout] 13 | /// Ensemble global des backends disponibles.
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/main.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |         /// Construit l'URI cible en combinant l'URL du backend avec le chemin de la requête.
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 13 |         let uri_string = format!("{}{}", backend_url, req.uri().path_and_query().map(|x| x.as_str()).unwrap_or(""));
[INFO] [stdout]    |         ------------------------------------------------------------------------------------------------------------ rustdoc does not generate documentation for statements
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/main.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 16 |         /// Effectue la requête vers le backend sélectionné.
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 17 |         client.request(req).await
[INFO] [stdout]    |         ------------------------- rustdoc does not generate documentation for expressions
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/main.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |         /// Retourne une réponse d'erreur si aucun backend n'est disponible.
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 20 |         Ok(Response::new(Body::from("No backend available")))
[INFO] [stdout]    |         ----------------------------------------------------- rustdoc does not generate documentation for expressions
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/main.rs:27:4
[INFO] [stdout]    |
[INFO] [stdout] 27 |    /// Lance la boucle de vérification de l'état de santé des backends en arrière-plan.
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 28 |     tokio::spawn(health_check_loop());
[INFO] [stdout]    |     --------------------------------- rustdoc does not generate documentation for expressions
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/main.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 |       /// Configure et démarre le serveur HTTP pour écouter les requêtes entrantes.
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 32 | /     let make_svc = make_service_fn(|_conn| async {
[INFO] [stdout] 33 | |         Ok::<_, hyper::Error>(service_fn(forward_request))
[INFO] [stdout] 34 | |     });
[INFO] [stdout]    | |_______- rustdoc does not generate documentation for statements
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/backends1.rs:14:4
[INFO] [stdout]    |
[INFO] [stdout] 14 |      /// Crée un service HTTP qui utilise `handle_request` pour chaque requête.
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 15 | /     let make_svc = make_service_fn(|_conn| async {
[INFO] [stdout] 16 | |         Ok::<_, hyper::Error>(service_fn(handle_request))
[INFO] [stdout] 17 | |     });
[INFO] [stdout]    | |_______- rustdoc does not generate documentation for statements
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/backends1.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     /// Lie le serveur à l'adresse spécifiée et commence à écouter les requêtes.
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 20 |     let server = Server::bind(&addr).serve(make_svc);
[INFO] [stdout]    |     ------------------------------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/backends1.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 |       /// Gère les erreurs potentielles du serveur.
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 24 | /     if let Err(e) = server.await {
[INFO] [stdout] 25 | |         eprintln!("Erreur serveur: {}", e);
[INFO] [stdout] 26 | |     }
[INFO] [stdout]    | |_____- rustdoc does not generate documentation for expressions
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/backends2.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |       /// Crée un service HTTP qui utilise `handle_request` pour chaque requête.
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 15 | /     let make_svc = make_service_fn(|_conn| async {
[INFO] [stdout] 16 | |         Ok::<_, hyper::Error>(service_fn(handle_request))
[INFO] [stdout] 17 | |     });
[INFO] [stdout]    | |_______- rustdoc does not generate documentation for statements
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/backends2.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     /// Lie le serveur à l'adresse spécifiée et commence à écouter les requêtes.
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 20 |     let server = Server::bind(&addr).serve(make_svc);
[INFO] [stdout]    |     ------------------------------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/backends2.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 |       /// Gère les erreurs potentielles du serveur.
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 24 | /     if let Err(e) = server.await {
[INFO] [stdout] 25 | |         eprintln!("Erreur serveur: {}", e);
[INFO] [stdout] 26 | |     }
[INFO] [stdout]    | |_____- rustdoc does not generate documentation for expressions
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/backends1.rs:14:4
[INFO] [stdout]    |
[INFO] [stdout] 14 |      /// Crée un service HTTP qui utilise `handle_request` pour chaque requête.
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 15 | /     let make_svc = make_service_fn(|_conn| async {
[INFO] [stdout] 16 | |         Ok::<_, hyper::Error>(service_fn(handle_request))
[INFO] [stdout] 17 | |     });
[INFO] [stdout]    | |_______- rustdoc does not generate documentation for statements
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::convert::Infallible`
[INFO] [stdout]  --> src/main.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::convert::Infallible;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/backends.rs:13:1
[INFO] [stdout]    |
[INFO] [stdout] 13 | /// Ensemble global des backends disponibles.
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ rustdoc does not generate documentation for macro invocations
[INFO] [stdout]    |
[INFO] [stdout]    = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `StatusCode`
[INFO] [stdout]   --> src/backends.rs:66:41
[INFO] [stdout]    |
[INFO] [stdout] 66 |     use hyper::{Body, Response, Server, StatusCode};
[INFO] [stdout]    |                                         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/main.rs:12:9
[INFO] [stdout]    |
[INFO] [stdout] 12 |         /// Construit l'URI cible en combinant l'URL du backend avec le chemin de la requête.
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 13 |         let uri_string = format!("{}{}", backend_url, req.uri().path_and_query().map(|x| x.as_str()).unwrap_or(""));
[INFO] [stdout]    |         ------------------------------------------------------------------------------------------------------------ rustdoc does not generate documentation for statements
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/main.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 16 |         /// Effectue la requête vers le backend sélectionné.
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 17 |         client.request(req).await
[INFO] [stdout]    |         ------------------------- rustdoc does not generate documentation for expressions
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/main.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 |         /// Retourne une réponse d'erreur si aucun backend n'est disponible.
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 20 |         Ok(Response::new(Body::from("No backend available")))
[INFO] [stdout]    |         ----------------------------------------------------- rustdoc does not generate documentation for expressions
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/main.rs:27:4
[INFO] [stdout]    |
[INFO] [stdout] 27 |    /// Lance la boucle de vérification de l'état de santé des backends en arrière-plan.
[INFO] [stdout]    |    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 28 |     tokio::spawn(health_check_loop());
[INFO] [stdout]    |     --------------------------------- rustdoc does not generate documentation for expressions
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/main.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 |       /// Configure et démarre le serveur HTTP pour écouter les requêtes entrantes.
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 32 | /     let make_svc = make_service_fn(|_conn| async {
[INFO] [stdout] 33 | |         Ok::<_, hyper::Error>(service_fn(forward_request))
[INFO] [stdout] 34 | |     });
[INFO] [stdout]    | |_______- rustdoc does not generate documentation for statements
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/backends1.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     /// Lie le serveur à l'adresse spécifiée et commence à écouter les requêtes.
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 20 |     let server = Server::bind(&addr).serve(make_svc);
[INFO] [stdout]    |     ------------------------------------------------- rustdoc does not generate documentation for statements
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/backends1.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 |       /// Gère les erreurs potentielles du serveur.
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 24 | /     if let Err(e) = server.await {
[INFO] [stdout] 25 | |         eprintln!("Erreur serveur: {}", e);
[INFO] [stdout] 26 | |     }
[INFO] [stdout]    | |_____- rustdoc does not generate documentation for expressions
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 20.35s
[INFO] running `Command { std: "docker" "inspect" "c4bc06d7d035f925a1cf9b34ec65faeb66e90dd368a9980d5c6cf763ccbf9bed", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c4bc06d7d035f925a1cf9b34ec65faeb66e90dd368a9980d5c6cf763ccbf9bed", kill_on_drop: false }`
[INFO] [stdout] c4bc06d7d035f925a1cf9b34ec65faeb66e90dd368a9980d5c6cf763ccbf9bed
