[INFO] fetching crate docchi_fs 0.8.0...
[INFO] testing docchi_fs-0.8.0 against beta-2025-09-21 for beta-1.91-3
[INFO] extracting crate docchi_fs 0.8.0 into /workspace/builds/worker-7-tc2/source
[INFO] started tweaking crates.io crate docchi_fs 0.8.0
[INFO] finished tweaking crates.io crate docchi_fs 0.8.0
[INFO] tweaked toml for crates.io crate docchi_fs 0.8.0 written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate docchi_fs 0.8.0 on toolchain beta-2025-09-21
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-09-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-09-21" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 49 packages to latest compatible versions
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-09-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/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" "+beta-2025-09-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 935fd4f57fbcb5e303aee80ec4f0a1885d951c3eb0ee42bad728af74fcd12e9f
[INFO] running `Command { std: "docker" "start" "-a" "935fd4f57fbcb5e303aee80ec4f0a1885d951c3eb0ee42bad728af74fcd12e9f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "935fd4f57fbcb5e303aee80ec4f0a1885d951c3eb0ee42bad728af74fcd12e9f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "935fd4f57fbcb5e303aee80ec4f0a1885d951c3eb0ee42bad728af74fcd12e9f", kill_on_drop: false }`
[INFO] [stdout] 935fd4f57fbcb5e303aee80ec4f0a1885d951c3eb0ee42bad728af74fcd12e9f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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" "+beta-2025-09-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c8db4dd00942ec0425b53c1e613181b3e4dc663991a774bb27520c8e1e5626c3
[INFO] running `Command { std: "docker" "start" "-a" "c8db4dd00942ec0425b53c1e613181b3e4dc663991a774bb27520c8e1e5626c3", kill_on_drop: false }`
[INFO] [stderr]    Compiling thiserror v2.0.17
[INFO] [stderr]    Compiling ucd-trie v0.1.7
[INFO] [stderr]    Compiling anyhow v1.0.100
[INFO] [stderr]    Compiling snap v1.1.1
[INFO] [stderr]    Compiling arrayvec v0.5.2
[INFO] [stderr]    Compiling bit-vec v0.6.3
[INFO] [stderr]    Compiling with_capacity_safe v0.4.2
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling metrohash v1.0.7
[INFO] [stderr]    Compiling linked-hash-map v0.5.6
[INFO] [stderr]    Compiling num_cpus v1.17.0
[INFO] [stderr]    Compiling thiserror-impl v2.0.17
[INFO] [stderr]    Compiling threadpool v1.8.1
[INFO] [stderr]    Compiling rayon v1.11.0
[INFO] [stderr]    Compiling docchi_compaction v0.8.0
[INFO] [stderr]    Compiling pest v2.8.2
[INFO] [stderr]    Compiling pest_meta v2.8.2
[INFO] [stderr]    Compiling docchi_archiver2 v0.8.0
[INFO] [stderr]    Compiling pest_generator v2.8.2
[INFO] [stderr]    Compiling pest_derive v2.8.2
[INFO] [stderr]    Compiling docchi_json5 v0.8.0
[INFO] [stderr]    Compiling docchi_core v0.8.0
[INFO] [stderr]    Compiling docchi_diff v0.8.0
[INFO] [stderr]    Compiling docchi_fs v0.8.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: methods `ast_bool`, `ast_f64`, and `ast_string` are never used
[INFO] [stdout]   --> src/error.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub(crate) trait OptToErr{
[INFO] [stdout]    |                  -------- methods in this trait
[INFO] [stdout] 13 |     fn ast_i64(&self) -> Result<i64, &'static str>;
[INFO] [stdout] 14 |     fn ast_bool(&self) -> Result<bool, &'static str>;
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 15 |     fn ast_f64(&self) -> Result<f64, &'static str>;
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 16 |     fn ast_string(&self) -> Result<String, &'static str>;
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `apply_diff` is never used
[INFO] [stdout]  --> src/imp/history/diff_and_cache/diff_src.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub(crate) trait DiffSrc<V : DiffValue> : Clone{
[INFO] [stdout]   |                  ------- method in this trait
[INFO] [stdout] 5 |     fn create_diff(&self, from: &Self) -> FsResult<V>;
[INFO] [stdout] 6 |     fn apply_diff(&mut self, diff : V) -> FsResult<()>;
[INFO] [stdout]   |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `read_value` is never used
[INFO] [stdout]  --> src/imp/history/diff_and_cache/diff_value.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub(crate) trait DiffValue : Sized{
[INFO] [stdout]   |                  --------- associated function in this trait
[INFO] [stdout] 5 |     fn read_value<R : Read>(read : &mut R) -> FsResult<Self>;
[INFO] [stdout]   |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/imp/history/file_hist/file_histories.rs:19:23
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub fn list_files(&self) -> Vec<HistoryFileData>{
[INFO] [stdout]    |                       ^^^^^         ^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub fn list_files(&self) -> Vec<HistoryFileData<'_>>{
[INFO] [stdout]    |                                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/imp/history/file_hist/file_histories.rs:28:33
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub fn get_newest_file_data(&self) -> Option<HistoryFileData>{
[INFO] [stdout]    |                                 ^^^^^            ^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                 |
[INFO] [stdout]    |                                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub fn get_newest_file_data(&self) -> Option<HistoryFileData<'_>>{
[INFO] [stdout]    |                                                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/imp/history/remove/history_remover.rs:72:37
[INFO] [stdout]    |
[INFO] [stdout] 72 |     pub(crate) fn get_item_from_cue(&self, cue_order : &[u32], cue_order_last : Option<u32>) -> Option<&'a HistoryRemoverItem>{
[INFO] [stdout]    |                                     ^^^^^ the lifetime is elided here                                      ^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 72 |     pub(crate) fn get_item_from_cue(&self, cue_order : &[u32], cue_order_last : Option<u32>) -> Option<&'a HistoryRemoverItem<'_>>{
[INFO] [stdout]    |                                                                                                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 13.47s
[INFO] running `Command { std: "docker" "inspect" "c8db4dd00942ec0425b53c1e613181b3e4dc663991a774bb27520c8e1e5626c3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c8db4dd00942ec0425b53c1e613181b3e4dc663991a774bb27520c8e1e5626c3", kill_on_drop: false }`
[INFO] [stdout] c8db4dd00942ec0425b53c1e613181b3e4dc663991a774bb27520c8e1e5626c3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-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" "+beta-2025-09-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 12cd0d7fdf162e58beadf2aa6945a066d32990d71330ad67f1172271785c361b
[INFO] running `Command { std: "docker" "start" "-a" "12cd0d7fdf162e58beadf2aa6945a066d32990d71330ad67f1172271785c361b", kill_on_drop: false }`
[INFO] [stderr]    Compiling docchi_fs v0.8.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: methods `ast_bool`, `ast_f64`, and `ast_string` are never used
[INFO] [stdout]   --> src/error.rs:14:8
[INFO] [stdout]    |
[INFO] [stdout] 12 | pub(crate) trait OptToErr{
[INFO] [stdout]    |                  -------- methods in this trait
[INFO] [stdout] 13 |     fn ast_i64(&self) -> Result<i64, &'static str>;
[INFO] [stdout] 14 |     fn ast_bool(&self) -> Result<bool, &'static str>;
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 15 |     fn ast_f64(&self) -> Result<f64, &'static str>;
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 16 |     fn ast_string(&self) -> Result<String, &'static str>;
[INFO] [stdout]    |        ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `apply_diff` is never used
[INFO] [stdout]  --> src/imp/history/diff_and_cache/diff_src.rs:6:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub(crate) trait DiffSrc<V : DiffValue> : Clone{
[INFO] [stdout]   |                  ------- method in this trait
[INFO] [stdout] 5 |     fn create_diff(&self, from: &Self) -> FsResult<V>;
[INFO] [stdout] 6 |     fn apply_diff(&mut self, diff : V) -> FsResult<()>;
[INFO] [stdout]   |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `read_value` is never used
[INFO] [stdout]  --> src/imp/history/diff_and_cache/diff_value.rs:5:8
[INFO] [stdout]   |
[INFO] [stdout] 4 | pub(crate) trait DiffValue : Sized{
[INFO] [stdout]   |                  --------- associated function in this trait
[INFO] [stdout] 5 |     fn read_value<R : Read>(read : &mut R) -> FsResult<Self>;
[INFO] [stdout]   |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/imp/history/file_hist/file_histories.rs:19:23
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub fn list_files(&self) -> Vec<HistoryFileData>{
[INFO] [stdout]    |                       ^^^^^         ^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                       |
[INFO] [stdout]    |                       the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout]    = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 19 |     pub fn list_files(&self) -> Vec<HistoryFileData<'_>>{
[INFO] [stdout]    |                                                    ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/imp/history/file_hist/file_histories.rs:28:33
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub fn get_newest_file_data(&self) -> Option<HistoryFileData>{
[INFO] [stdout]    |                                 ^^^^^            ^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |                                 |
[INFO] [stdout]    |                                 the lifetime is elided here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 28 |     pub fn get_newest_file_data(&self) -> Option<HistoryFileData<'_>>{
[INFO] [stdout]    |                                                                 ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing
[INFO] [stdout]   --> src/imp/history/remove/history_remover.rs:72:37
[INFO] [stdout]    |
[INFO] [stdout] 72 |     pub(crate) fn get_item_from_cue(&self, cue_order : &[u32], cue_order_last : Option<u32>) -> Option<&'a HistoryRemoverItem>{
[INFO] [stdout]    |                                     ^^^^^ the lifetime is elided here                                      ^^^^^^^^^^^^^^^^^^ the same lifetime is hidden here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the same lifetime is referred to in inconsistent ways, making the signature confusing
[INFO] [stdout] help: use `'_` for type paths
[INFO] [stdout]    |
[INFO] [stdout] 72 |     pub(crate) fn get_item_from_cue(&self, cue_order : &[u32], cue_order_last : Option<u32>) -> Option<&'a HistoryRemoverItem<'_>>{
[INFO] [stdout]    |                                                                                                                              ++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `tempfile`
[INFO] [stdout]  --> src/test_fs/save_test.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use tempfile::tempdir;
[INFO] [stdout]   |     ^^^^^^^^ use of unresolved module or unlinked crate `tempfile`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `tempfile`, use `cargo add tempfile` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `rand`
[INFO] [stdout]  --> src/test_simple_history/test_simple_diff_files.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use rand::Rng;
[INFO] [stdout]   |     ^^^^ use of unresolved module or unlinked crate `rand`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `rand`, use `cargo add rand` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `rand`
[INFO] [stdout]  --> src/test_simple_history/test_cumulative_limit_nth.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use rand::Rng;
[INFO] [stdout]   |     ^^^^ use of unresolved module or unlinked crate `rand`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `rand`, use `cargo add rand` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `rand`
[INFO] [stdout]  --> src/test_simple_history/test_cumulative_limit_count.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use rand::Rng;
[INFO] [stdout]   |     ^^^^ use of unresolved module or unlinked crate `rand`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `rand`, use `cargo add rand` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `rand`
[INFO] [stdout]  --> src/test_simple_history/test_max_phase0.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use rand::Rng;
[INFO] [stdout]   |     ^^^^ use of unresolved module or unlinked crate `rand`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `rand`, use `cargo add rand` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `rand`
[INFO] [stdout]  --> src/test_simple_history/test_max_phase0_with_cumu.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use rand::Rng;
[INFO] [stdout]   |     ^^^^ use of unresolved module or unlinked crate `rand`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `rand`, use `cargo add rand` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `rand`
[INFO] [stdout]  --> src/test_simple_history/test_load_and_save.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use rand::Rng;
[INFO] [stdout]   |     ^^^^ use of unresolved module or unlinked crate `rand`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `rand`, use `cargo add rand` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `rand`
[INFO] [stdout]  --> src/test_simple_history/simple_diff/sd_data.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use rand::{thread_rng, Rng};
[INFO] [stdout]   |     ^^^^ use of unresolved module or unlinked crate `rand`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `rand`, use `cargo add rand` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a function that returns `Result`
[INFO] [stdout]   --> src/test_fs/save_test.rs:39:33
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn save_test() -> FsResult<()> {
[INFO] [stdout]    | ------------------------------ this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 39 |         let b = get_bool(p, "b")?;
[INFO] [stdout]    |                                 ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), FsError>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a function that returns `Result`
[INFO] [stdout]   --> src/test_fs/save_test.rs:59:34
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn save_test() -> FsResult<()> {
[INFO] [stdout]    | ------------------------------ this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 59 |         let i = get_int(p, "int")?;
[INFO] [stdout]    |                                  ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), FsError>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a function that returns `Result`
[INFO] [stdout]   --> src/test_fs/save_test.rs:70:33
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn save_test() -> FsResult<()> {
[INFO] [stdout]    | ------------------------------ this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 70 |         let b = get_bool(p, "b")?;
[INFO] [stdout]    |                                 ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), FsError>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a function that returns `Result`
[INFO] [stdout]   --> src/test_fs/save_test.rs:73:34
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn save_test() -> FsResult<()> {
[INFO] [stdout]    | ------------------------------ this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 73 |         let i = get_int(p, "int")?;
[INFO] [stdout]    |                                  ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), FsError>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a function that returns `Result`
[INFO] [stdout]   --> src/test_fs/save_test.rs:76:36
[INFO] [stdout]    |
[INFO] [stdout] 17 | fn save_test() -> FsResult<()> {
[INFO] [stdout]    | ------------------------------ this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 76 |         let a = get_int(p, "added")?;
[INFO] [stdout]    |                                    ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), FsError>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/simple_diff/sd_data.rs:31:38
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub(crate) fn mutate(&mut self, num : u8) -> FsResult<()>{
[INFO] [stdout]    |     --------------------------------------------------------- this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 31 |             if *self.bytes.get(index)? == 0{ break; }
[INFO] [stdout]    |                                      ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), FsError>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/simple_diff/sd_data.rs:36:52
[INFO] [stdout]    |
[INFO] [stdout] 27 |     pub(crate) fn mutate(&mut self, num : u8) -> FsResult<()>{
[INFO] [stdout]    |     --------------------------------------------------------- this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 36 |             *self.bytes.get_mut(index + n as usize)? = num;
[INFO] [stdout]    |                                                    ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), FsError>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `FsError`
[INFO] [stdout]   --> src/test_simple_history/simple_diff/sd_data.rs:69:78
[INFO] [stdout]    |
[INFO] [stdout] 69 |             Err(anyhow!("error index {} is out of bound len {}", index, len))?
[INFO] [stdout]    |             -----------------------------------------------------------------^ the trait `From<anyhow::Error>` is not implemented for `FsError`
[INFO] [stdout]    |             |
[INFO] [stdout]    |             this can't be annotated with `?` because it has type `Result<_, anyhow::Error>`
[INFO] [stdout]    |
[INFO] [stdout] note: `FsError` needs to implement `From<anyhow::Error>`
[INFO] [stdout]   --> src/error.rs:34:1
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub struct FsError {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout]    = help: the following other types implement trait `From<T>`:
[INFO] [stdout]              `FsError` implements `From<&str>`
[INFO] [stdout]              `FsError` implements `From<ComError>`
[INFO] [stdout]              `FsError` implements `From<CoreError>`
[INFO] [stdout]              `FsError` implements `From<DiffError>`
[INFO] [stdout]              `FsError` implements `From<NouArcError>`
[INFO] [stdout]              `FsError` implements `From<SystemTimeError>`
[INFO] [stdout]              `FsError` implements `From<TryReserveError>`
[INFO] [stdout]              `FsError` implements `From<std::io::Error>`
[INFO] [stdout]              `FsError` implements `From<std::string::String>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/simple_diff/sd_diff.rs:46:30
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub(crate) fn decode_kvals(kvals : &[KVal]) -> FsResult<SdDiff>{
[INFO] [stdout]    |     --------------------------------------------------------------- this function returns a `Result`
[INFO] [stdout] 45 |         let mut iter = kvals.iter();
[INFO] [stdout] 46 |         let len = iter.next()?.as_i64()? as usize;
[INFO] [stdout]    |                              ^ use `.ok_or(...)?` to provide an error compatible with `Result<SdDiff, FsError>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/simple_diff/sd_diff.rs:46:40
[INFO] [stdout]    |
[INFO] [stdout] 44 |     pub(crate) fn decode_kvals(kvals : &[KVal]) -> FsResult<SdDiff>{
[INFO] [stdout]    |     --------------------------------------------------------------- this function returns a `Result`
[INFO] [stdout] 45 |         let mut iter = kvals.iter();
[INFO] [stdout] 46 |         let len = iter.next()?.as_i64()? as usize;
[INFO] [stdout]    |                                        ^ use `.ok_or(...)?` to provide an error compatible with `Result<SdDiff, FsError>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/simple_diff/sd_diff.rs:76:32
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub(crate) fn read<'a>(iter : &mut impl Iterator<Item=&'a KVal>) -> FsResult<SdDiffItem>{
[INFO] [stdout]    |     ---------------------------------------------------------------------------------------- this function returns a `Result`
[INFO] [stdout] 76 |         let index = iter.next()?.as_i64()? as usize;
[INFO] [stdout]    |                                ^ use `.ok_or(...)?` to provide an error compatible with `Result<SdDiffItem, FsError>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/simple_diff/sd_diff.rs:76:42
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub(crate) fn read<'a>(iter : &mut impl Iterator<Item=&'a KVal>) -> FsResult<SdDiffItem>{
[INFO] [stdout]    |     ---------------------------------------------------------------------------------------- this function returns a `Result`
[INFO] [stdout] 76 |         let index = iter.next()?.as_i64()? as usize;
[INFO] [stdout]    |                                          ^ use `.ok_or(...)?` to provide an error compatible with `Result<SdDiffItem, FsError>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/simple_diff/sd_diff.rs:77:32
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub(crate) fn read<'a>(iter : &mut impl Iterator<Item=&'a KVal>) -> FsResult<SdDiffItem>{
[INFO] [stdout]    |     ---------------------------------------------------------------------------------------- this function returns a `Result`
[INFO] [stdout] 76 |         let index = iter.next()?.as_i64()? as usize;
[INFO] [stdout] 77 |         let value = iter.next()?.as_i64()? as u8;
[INFO] [stdout]    |                                ^ use `.ok_or(...)?` to provide an error compatible with `Result<SdDiffItem, FsError>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/simple_diff/sd_diff.rs:77:42
[INFO] [stdout]    |
[INFO] [stdout] 75 |     pub(crate) fn read<'a>(iter : &mut impl Iterator<Item=&'a KVal>) -> FsResult<SdDiffItem>{
[INFO] [stdout]    |     ---------------------------------------------------------------------------------------- this function returns a `Result`
[INFO] [stdout] 76 |         let index = iter.next()?.as_i64()? as usize;
[INFO] [stdout] 77 |         let value = iter.next()?.as_i64()? as u8;
[INFO] [stdout]    |                                          ^ use `.ok_or(...)?` to provide an error compatible with `Result<SdDiffItem, FsError>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a function that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/show_dir_contents_history.rs:13:44
[INFO] [stdout]    |
[INFO] [stdout]  6 | pub(crate) fn show_dir_contents_history<P : AsRef<Path>>(path : P) -> FsResult<Vec<(String, usize)>>{
[INFO] [stdout]    | ---------------------------------------------------------------------------------------------------- this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 13 |         let name = entry.path().file_name()?.to_string_lossy().to_string();
[INFO] [stdout]    |                                            ^ use `.ok_or(...)?` to provide an error compatible with `Result<Vec<(std::string::String, usize)>, FsError>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `rand`
[INFO] [stdout]   --> src/test_simple_history/test_simple_diff_files.rs:16:19
[INFO] [stdout]    |
[INFO] [stdout] 16 |     let mut rng = rand::thread_rng();
[INFO] [stdout]    |                   ^^^^ use of unresolved module or unlinked crate `rand`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `rand`, use `cargo add rand` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a function that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/test_simple_diff_files.rs:45:58
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn test_simple_diff_files() -> FsResult<()> {
[INFO] [stdout]    | ------------------------------------------- this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 45 |         let loaded = load(&history.newest_file_path(&dir)?, &history, cache.create_root(), &mut cache, &op)?;
[INFO] [stdout]    |                                                          ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), FsError>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `rand`
[INFO] [stdout]   --> src/test_simple_history/test_cumulative_limit_nth.rs:17:19
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let mut rng = rand::thread_rng();
[INFO] [stdout]    |                   ^^^^ use of unresolved module or unlinked crate `rand`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `rand`, use `cargo add rand` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a function that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/history2/create_file_history2.rs:13:48
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub(crate) fn create_file_history2(dir_path : &Path, hint_max_phase : Option<usize>) -> FsResult<FileHistory2>{
[INFO] [stdout]    | -------------------------------------------------------------------------------------------------------------- this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 13 |         let filename = entry.path().file_name()?.to_string_lossy().to_string();
[INFO] [stdout]    |                                                ^ use `.ok_or(...)?` to provide an error compatible with `Result<FileHistory2, FsError>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `rand`
[INFO] [stdout]   --> src/test_simple_history/test_cumulative_limit_count.rs:16:19
[INFO] [stdout]    |
[INFO] [stdout] 16 |     let mut rng = rand::thread_rng();
[INFO] [stdout]    |                   ^^^^ use of unresolved module or unlinked crate `rand`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `rand`, use `cargo add rand` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `rand`
[INFO] [stdout]   --> src/test_simple_history/test_max_phase0.rs:15:19
[INFO] [stdout]    |
[INFO] [stdout] 15 |     let mut rng = rand::thread_rng();
[INFO] [stdout]    |                   ^^^^ use of unresolved module or unlinked crate `rand`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `rand`, use `cargo add rand` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a function that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/test_max_phase0.rs:42:57
[INFO] [stdout]    |
[INFO] [stdout] 13 | fn test_max_phase0() -> FsResult<()> {
[INFO] [stdout]    | ------------------------------------ this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 42 |         let newest_path = history.newest_file_path(&dir)?;
[INFO] [stdout]    |                                                         ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), FsError>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `rand`
[INFO] [stdout]   --> src/test_simple_history/test_max_phase0_with_cumu.rs:16:19
[INFO] [stdout]    |
[INFO] [stdout] 16 |     let mut rng = rand::thread_rng();
[INFO] [stdout]    |                   ^^^^ use of unresolved module or unlinked crate `rand`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `rand`, use `cargo add rand` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a function that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/test_max_phase0_with_cumu.rs:42:58
[INFO] [stdout]    |
[INFO] [stdout] 14 | fn test_max_phase0_with_cumu() -> FsResult<()> {
[INFO] [stdout]    | ---------------------------------------------- this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 42 |         let loaded = load(&history.newest_file_path(&dir)?, &history, cache.create_root(), &mut cache,&op)?;
[INFO] [stdout]    |                                                          ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), FsError>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `rand`
[INFO] [stdout]   --> src/test_simple_history/test_load_and_save.rs:17:19
[INFO] [stdout]    |
[INFO] [stdout] 17 |     let mut rng = rand::thread_rng();
[INFO] [stdout]    |                   ^^^^ use of unresolved module or unlinked crate `rand`
[INFO] [stdout]    |
[INFO] [stdout]    = help: if you wanted to use a crate named `rand`, use `cargo add rand` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a function that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/test_load_and_save.rs:42:58
[INFO] [stdout]    |
[INFO] [stdout] 15 | fn test_load_and_save() -> FsResult<()> {
[INFO] [stdout]    | --------------------------------------- this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 42 |         let loaded = load(&history.newest_file_path(&dir)?, &history, cache.create_root(), &mut cache, &op)?;
[INFO] [stdout]    |                                                          ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), FsError>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a function that returns `Result`
[INFO] [stdout]   --> src/test_simple_history/test_load_and_save.rs:63:58
[INFO] [stdout]    |
[INFO] [stdout] 15 | fn test_load_and_save() -> FsResult<()> {
[INFO] [stdout]    | --------------------------------------- this function returns a `Result`
[INFO] [stdout] ...
[INFO] [stdout] 63 |         let loaded = load(&history.newest_file_path(&dir)?, &history, cache.create_root(), &mut cache, &op)?;
[INFO] [stdout]    |                                                          ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), FsError>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0432, E0433.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `docchi_fs` (lib test) due to 35 previous errors
[INFO] running `Command { std: "docker" "inspect" "12cd0d7fdf162e58beadf2aa6945a066d32990d71330ad67f1172271785c361b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "12cd0d7fdf162e58beadf2aa6945a066d32990d71330ad67f1172271785c361b", kill_on_drop: false }`
[INFO] [stdout] 12cd0d7fdf162e58beadf2aa6945a066d32990d71330ad67f1172271785c361b
