[INFO] cloning repository https://github.com/math-dev-24/practice-ETL-pipeline
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/math-dev-24/practice-ETL-pipeline" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmath-dev-24%2Fpractice-ETL-pipeline", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmath-dev-24%2Fpractice-ETL-pipeline'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 1c1cfc897b9e93e1c83d5ec1e3ed7b921464d2f5
[INFO] checking math-dev-24/practice-ETL-pipeline/1c1cfc897b9e93e1c83d5ec1e3ed7b921464d2f5 against master#40557f6225e337d68c8d4f086557ce54135f5dd9 for pr-158447
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmath-dev-24%2Fpractice-ETL-pipeline" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/math-dev-24/practice-ETL-pipeline
[INFO] finished tweaking git repo https://github.com/math-dev-24/practice-ETL-pipeline
[INFO] tweaked toml for git repo https://github.com/math-dev-24/practice-ETL-pipeline written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/math-dev-24/practice-ETL-pipeline on toolchain 40557f6225e337d68c8d4f086557ce54135f5dd9
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+40557f6225e337d68c8d4f086557ce54135f5dd9" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/math-dev-24/practice-ETL-pipeline 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" "+40557f6225e337d68c8d4f086557ce54135f5dd9" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded find-msvc-tools v0.1.2
[INFO] [stderr]   Downloaded indicatif v0.18.0
[INFO] [stderr]   Downloaded unit-prefix v0.5.1
[INFO] [stderr]   Downloaded console v0.16.1
[INFO] [stderr]   Downloaded csv-core v0.1.12
[INFO] [stderr]   Downloaded cc v1.2.39
[INFO] [stderr]   Downloaded rusqlite v0.37.0
[INFO] [stderr]   Downloaded libsqlite3-sys v0.35.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] f99acd10ed454e33258e3ee81a2ffbd1e77a820e20c748b260c873a8a2145e5c
[INFO] running `Command { std: "docker" "start" "f99acd10ed454e33258e3ee81a2ffbd1e77a820e20c748b260c873a8a2145e5c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "f99acd10ed454e33258e3ee81a2ffbd1e77a820e20c748b260c873a8a2145e5c" "/opt/rustwide/cargo-home/bin/cargo" "+40557f6225e337d68c8d4f086557ce54135f5dd9" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f99acd10ed454e33258e3ee81a2ffbd1e77a820e20c748b260c873a8a2145e5c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-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" "-w" "/opt/rustwide/workdir" "--user" "0:0" "f99acd10ed454e33258e3ee81a2ffbd1e77a820e20c748b260c873a8a2145e5c" "/opt/rustwide/cargo-home/bin/cargo" "+40557f6225e337d68c8d4f086557ce54135f5dd9" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.101
[INFO] [stderr]    Compiling quote v1.0.41
[INFO] [stderr]    Compiling unicode-ident v1.0.19
[INFO] [stderr]     Checking foldhash v0.1.5
[INFO] [stderr]    Compiling find-msvc-tools v0.1.2
[INFO] [stderr]    Compiling libc v0.2.176
[INFO] [stderr]    Compiling portable-atomic v1.11.1
[INFO] [stderr]     Checking unicode-width v0.2.2
[INFO] [stderr]     Checking ryu v1.0.20
[INFO] [stderr]     Checking memchr v2.7.6
[INFO] [stderr]     Checking itoa v1.0.15
[INFO] [stderr]     Checking fallible-iterator v0.3.0
[INFO] [stderr]     Checking bitflags v2.9.4
[INFO] [stderr]     Checking fallible-streaming-iterator v0.1.9
[INFO] [stderr]     Checking unit-prefix v0.5.1
[INFO] [stderr]     Checking either v1.15.0
[INFO] [stderr]    Compiling cc v1.2.39
[INFO] [stderr]     Checking unsafe-libyaml v0.2.11
[INFO] [stderr]     Checking hashbrown v0.15.5
[INFO] [stderr]     Checking rayon v1.11.0
[INFO] [stderr]     Checking hashlink v0.10.0
[INFO] [stderr]     Checking indexmap v2.11.4
[INFO] [stderr]     Checking csv-core v0.1.12
[INFO] [stderr]    Compiling syn v2.0.106
[INFO] [stderr]    Compiling libsqlite3-sys v0.35.0
[INFO] [stderr]     Checking console v0.16.1
[INFO] [stderr]     Checking indicatif v0.18.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking serde_yaml v0.9.34+deprecated
[INFO] [stderr]     Checking csv v1.3.1
[INFO] [stderr]     Checking rusqlite v0.37.0
[INFO] [stderr]     Checking training-rust-pipeline v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `serde::de::Error`
[INFO] [stdout]  --> src/models/registry.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use serde::de::Error;
[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 import: `std::fs`
[INFO] [stdout]  --> src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::fs;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde::de::Error`
[INFO] [stdout]  --> src/models/registry.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use serde::de::Error;
[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 import: `std::fs`
[INFO] [stdout]  --> src/main.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::fs;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]   --> src/main.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |       exit(1);
[INFO] [stdout]    |       ------- any code following this expression is unreachable
[INFO] [stdout] 25 |
[INFO] [stdout] 26 | /     let paths: Vec<&str> = vec![
[INFO] [stdout] 27 | |         "./src/data/data_1.csv",
[INFO] [stdout] 28 | |         "./src/data/data_2.csv",
[INFO] [stdout] 29 | |         "./src/data/data_3.csv",
[INFO] [stdout] 30 | |         "./src/data/data_4.csv",
[INFO] [stdout] 31 | |         "./src/data/data_5.csv"
[INFO] [stdout] 32 | |     ];
[INFO] [stdout]    | |______^ unreachable statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable statement
[INFO] [stdout]   --> src/main.rs:26:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |       exit(1);
[INFO] [stdout]    |       ------- any code following this expression is unreachable
[INFO] [stdout] 25 |
[INFO] [stdout] 26 | /     let paths: Vec<&str> = vec![
[INFO] [stdout] 27 | |         "./src/data/data_1.csv",
[INFO] [stdout] 28 | |         "./src/data/data_2.csv",
[INFO] [stdout] 29 | |         "./src/data/data_3.csv",
[INFO] [stdout] 30 | |         "./src/data/data_4.csv",
[INFO] [stdout] 31 | |         "./src/data/data_5.csv"
[INFO] [stdout] 32 | |     ];
[INFO] [stdout]    | |______^ unreachable statement
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rayon::prelude`
[INFO] [stdout]  --> src/models/stream_pipeline.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use rayon::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `rayon::prelude`
[INFO] [stdout]  --> src/models/stream_pipeline.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use rayon::prelude::*;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/models/registry.rs:66:13
[INFO] [stdout]    |
[INFO] [stdout] 63 |             FilterFn::IsValid => {
[INFO] [stdout]    |             ----------------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 66 |             _ => panic!("Ce filtre ne marche que sur IsValid")
[INFO] [stdout]    |             ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_all_users` is never used
[INFO] [stdout]   --> src/adapter/storage_output/sqlite.rs:70:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl Database {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 70 |     fn get_all_users(&self) -> Result<Vec<User>, rusqlite::Error> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `aggregate` and `report` are never used
[INFO] [stdout]    --> src/models/pipeline.rs:120:12
[INFO] [stdout]     |
[INFO] [stdout]  52 | impl<T: Send + Sync> Pipeline<T> {
[INFO] [stdout]     | -------------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn aggregate<K>(self, key_fn: impl Fn(&T) -> K + Sync + Send) -> HashMap<K, usize>
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 156 |     pub fn report(&self) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `InvalidFormat` is never constructed
[INFO] [stdout]  --> src/models/error.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub enum ValidationError {
[INFO] [stdout]   |          --------------- variant in this enum
[INFO] [stdout] 6 |     EmptyField(String),
[INFO] [stdout] 7 |     InvalidFormat(String, String),
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `ValidationError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `finalize` is never used
[INFO] [stdout]  --> src/models/output.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub trait OutputPort<T> {
[INFO] [stdout]   |           ---------- method in this trait
[INFO] [stdout] 4 |     fn write(&mut self, data: &[T]) -> Result<(), Box<dyn Error>>;
[INFO] [stdout] 5 |     fn finalize(&mut self) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name` and `output` are never read
[INFO] [stdout]   --> src/models/recipe_config.rs:9:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct RecipeConfig {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout]  9 |     pub name: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 12 |     pub output: OutputConfig,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RecipeConfig` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `format` is never read
[INFO] [stdout]   --> src/models/recipe_config.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct SourceConfig {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 27 |     pub format: FormatFile,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SourceConfig` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `format` and `path` are never read
[INFO] [stdout]   --> src/models/recipe_config.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct OutputConfig {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 39 |     pub format: FormatFile,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 40 |     pub path: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `OutputConfig` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]   --> src/models/registry.rs:66:13
[INFO] [stdout]    |
[INFO] [stdout] 63 |             FilterFn::IsValid => {
[INFO] [stdout]    |             ----------------- matches all the relevant values
[INFO] [stdout] ...
[INFO] [stdout] 66 |             _ => panic!("Ce filtre ne marche que sur IsValid")
[INFO] [stdout]    |             ^ no value can reach this
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_all_users` is never used
[INFO] [stdout]   --> src/adapter/storage_output/sqlite.rs:70:8
[INFO] [stdout]    |
[INFO] [stdout] 30 | impl Database {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 70 |     fn get_all_users(&self) -> Result<Vec<User>, rusqlite::Error> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `aggregate` and `report` are never used
[INFO] [stdout]    --> src/models/pipeline.rs:120:12
[INFO] [stdout]     |
[INFO] [stdout]  52 | impl<T: Send + Sync> Pipeline<T> {
[INFO] [stdout]     | -------------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn aggregate<K>(self, key_fn: impl Fn(&T) -> K + Sync + Send) -> HashMap<K, usize>
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 156 |     pub fn report(&self) {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `InvalidFormat` is never constructed
[INFO] [stdout]  --> src/models/error.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub enum ValidationError {
[INFO] [stdout]   |          --------------- variant in this enum
[INFO] [stdout] 6 |     EmptyField(String),
[INFO] [stdout] 7 |     InvalidFormat(String, String),
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `ValidationError` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `extract_streaming` is never used
[INFO] [stdout]   --> src/models/stream_pipeline.rs:18:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl StreamingPipeline<CsvReader, csv::StringRecord> {
[INFO] [stdout]    | ---------------------------------------------------- associated function in this implementation
[INFO] [stdout] 18 |     pub fn extract_streaming(path: &str, chunk_size: usize) -> Result<Self, Box<dyn std::error::Error>>
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `finalize` is never used
[INFO] [stdout]  --> src/models/output.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 3 | pub trait OutputPort<T> {
[INFO] [stdout]   |           ---------- method in this trait
[INFO] [stdout] 4 |     fn write(&mut self, data: &[T]) -> Result<(), Box<dyn Error>>;
[INFO] [stdout] 5 |     fn finalize(&mut self) -> Result<(), Box<dyn Error>> {
[INFO] [stdout]   |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `name` and `output` are never read
[INFO] [stdout]   --> src/models/recipe_config.rs:9:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct RecipeConfig {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout]  9 |     pub name: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout] ...
[INFO] [stdout] 12 |     pub output: OutputConfig,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `RecipeConfig` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `format` is never read
[INFO] [stdout]   --> src/models/recipe_config.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 26 | pub struct SourceConfig {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 27 |     pub format: FormatFile,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `SourceConfig` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `format` and `path` are never read
[INFO] [stdout]   --> src/models/recipe_config.rs:39:9
[INFO] [stdout]    |
[INFO] [stdout] 38 | pub struct OutputConfig {
[INFO] [stdout]    |            ------------ fields in this struct
[INFO] [stdout] 39 |     pub format: FormatFile,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] 40 |     pub path: String,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `OutputConfig` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 18.87s
[INFO] running `Command { std: "docker" "inspect" "f99acd10ed454e33258e3ee81a2ffbd1e77a820e20c748b260c873a8a2145e5c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f99acd10ed454e33258e3ee81a2ffbd1e77a820e20c748b260c873a8a2145e5c", kill_on_drop: false }`
[INFO] [stdout] f99acd10ed454e33258e3ee81a2ffbd1e77a820e20c748b260c873a8a2145e5c
