[INFO] fetching crate wysgy_core 0.1.5...
[INFO] testing wysgy_core-0.1.5 against 1.100.0-beta.1+cargoflags=--release for beta-release-1.100-2
[INFO] extracting crate wysgy_core 0.1.5 into /workspace/builds/worker-1-tc2/source
[INFO] started tweaking crates.io crate wysgy_core 0.1.5
[INFO] finished tweaking crates.io crate wysgy_core 0.1.5
[INFO] tweaked toml for crates.io crate wysgy_core 0.1.5 written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate wysgy_core 0.1.5 on toolchain 1.100.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "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" "+1.100.0-beta.1" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 96 packages to highest compatible versions
[INFO] [stderr]       Adding log4rs v0.8.3 (available: v1.4.0)
[INFO] [stderr]       Adding prettytable-rs v0.8.0 (available: v0.10.0)
[INFO] [stderr]       Adding textwrap v0.11.0 (available: v0.16.4)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.100.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/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:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 6a83da06da5d016dd9610328524102f5354de32359e21a845cee7ae2b619413e
[INFO] running `Command { std: "docker" "start" "6a83da06da5d016dd9610328524102f5354de32359e21a845cee7ae2b619413e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6a83da06da5d016dd9610328524102f5354de32359e21a845cee7ae2b619413e", 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" "6a83da06da5d016dd9610328524102f5354de32359e21a845cee7ae2b619413e" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6a83da06da5d016dd9610328524102f5354de32359e21a845cee7ae2b619413e", 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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "6a83da06da5d016dd9610328524102f5354de32359e21a845cee7ae2b619413e" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "build" "--frozen" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]    Compiling crc32fast v1.5.2
[INFO] [stderr]    Compiling traitobject v0.1.1
[INFO] [stderr]    Compiling dirs v1.0.5
[INFO] [stderr]    Compiling ordered-float v1.1.1
[INFO] [stderr]    Compiling humantime v1.3.0
[INFO] [stderr]    Compiling chrono v0.4.45
[INFO] [stderr]    Compiling log v0.4.34
[INFO] [stderr]    Compiling unsafe-any v0.4.2
[INFO] [stderr]    Compiling term v0.5.2
[INFO] [stderr]    Compiling serde-value v0.5.3
[INFO] [stderr]    Compiling typemap v0.3.3
[INFO] [stderr]    Compiling flate2 v1.1.10
[INFO] [stderr]    Compiling thread-id v3.3.0
[INFO] [stderr]    Compiling arc-swap v0.3.11
[INFO] [stderr]    Compiling antidote v1.1.0
[INFO] [stderr]    Compiling log-mdc v0.1.0
[INFO] [stderr]    Compiling encode_unicode v0.3.6
[INFO] [stderr]    Compiling serde_yaml v0.8.26
[INFO] [stderr]    Compiling prettytable-rs v0.8.0
[INFO] [stderr]    Compiling log4rs v0.8.3
[INFO] [stderr]    Compiling wysgy_core v0.1.5 (/opt/rustwide/workdir)
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/lib.rs:41:63
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn editor(fname: &str, editor: &str) -> Result<Child, Box<error::Error>> {
[INFO] [stdout]    |                                                               ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn editor(fname: &str, editor: &str) -> Result<Child, Box<dyn error::Error>> {
[INFO] [stdout]    |                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/lib.rs:47:61
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn file_to_string(fname: &String) -> Result<String, Box<error::Error>> {
[INFO] [stdout]    |                                                             ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn file_to_string(fname: &String) -> Result<String, Box<dyn error::Error>> {
[INFO] [stdout]    |                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/lib.rs:66:58
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub fn file_to_dict(fname: &String) -> Result<Value, Box<error::Error>> {
[INFO] [stdout]    |                                                          ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub fn file_to_dict(fname: &String) -> Result<Value, Box<dyn error::Error>> {
[INFO] [stdout]    |                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/lib.rs:72:64
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub fn existing_file_node(fname: &String) -> Result<Value, Box<error::Error>> {
[INFO] [stdout]    |                                                                ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub fn existing_file_node(fname: &String) -> Result<Value, Box<dyn error::Error>> {
[INFO] [stdout]    |                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:180:59
[INFO] [stdout]     |
[INFO] [stdout] 180 |     fn create_dir(&self, name: &String) -> Result<(), Box<error::Error>> {
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 180 |     fn create_dir(&self, name: &String) -> Result<(), Box<dyn error::Error>> {
[INFO] [stdout]     |                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:208:56
[INFO] [stdout]     |
[INFO] [stdout] 208 |     pub fn create(name: String) -> Result<Project, Box<error::Error>> {
[INFO] [stdout]     |                                                        ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 208 |     pub fn create(name: String) -> Result<Project, Box<dyn error::Error>> {
[INFO] [stdout]     |                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:234:54
[INFO] [stdout]     |
[INFO] [stdout] 234 |     pub fn open(name: String) -> Result<Project, Box<error::Error>> {
[INFO] [stdout]     |                                                      ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 234 |     pub fn open(name: String) -> Result<Project, Box<dyn error::Error>> {
[INFO] [stdout]     |                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:251:67
[INFO] [stdout]     |
[INFO] [stdout] 251 |     pub fn add_json_node(&self, label: &String) -> Result<(), Box<error::Error>> {
[INFO] [stdout]     |                                                                   ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 251 |     pub fn add_json_node(&self, label: &String) -> Result<(), Box<dyn error::Error>> {
[INFO] [stdout]     |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:268:25
[INFO] [stdout]     |
[INFO] [stdout] 268 |     ) -> Result<(), Box<error::Error>> {
[INFO] [stdout]     |                         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 268 |     ) -> Result<(), Box<dyn error::Error>> {
[INFO] [stdout]     |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:282:83
[INFO] [stdout]     |
[INFO] [stdout] 282 |     pub fn add_file_node(&self, label: &String, fname: &String) -> Result<(), Box<error::Error>> {
[INFO] [stdout]     |                                                                                   ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 282 |     pub fn add_file_node(&self, label: &String, fname: &String) -> Result<(), Box<dyn error::Error>> {
[INFO] [stdout]     |                                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:332:20
[INFO] [stdout]     |
[INFO] [stdout] 332 |         label_cb: &Fn(PathBuf) -> (String, String),
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 332 |         label_cb: &dyn Fn(PathBuf) -> (String, String),
[INFO] [stdout]     |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:416:25
[INFO] [stdout]     |
[INFO] [stdout] 416 |     ) -> Result<(), Box<error::Error>> {
[INFO] [stdout]     |                         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 416 |     ) -> Result<(), Box<dyn error::Error>> {
[INFO] [stdout]     |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:455:74
[INFO] [stdout]     |
[INFO] [stdout] 455 |     pub fn nodes_list(&self, t: Option<String>) -> Result<Vec<Node>, Box<error::Error>> {
[INFO] [stdout]     |                                                                          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 455 |     pub fn nodes_list(&self, t: Option<String>) -> Result<Vec<Node>, Box<dyn error::Error>> {
[INFO] [stdout]     |                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:472:72
[INFO] [stdout]     |
[INFO] [stdout] 472 |     pub fn rels_list(&self, t: Option<Value>) -> Result<Vec<Node>, Box<error::Error>> {
[INFO] [stdout]     |                                                                        ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 472 |     pub fn rels_list(&self, t: Option<Value>) -> Result<Vec<Node>, Box<dyn error::Error>> {
[INFO] [stdout]     |                                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:488:57
[INFO] [stdout]     |
[INFO] [stdout] 488 |     pub fn types_list(&self) -> Result<Vec<String>, Box<error::Error>> {
[INFO] [stdout]     |                                                         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 488 |     pub fn types_list(&self) -> Result<Vec<String>, Box<dyn error::Error>> {
[INFO] [stdout]     |                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:504:44
[INFO] [stdout]     |
[INFO] [stdout] 504 |     pub fn export(&self) -> Result<(), Box<error::Error>> {
[INFO] [stdout]     |                                            ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 504 |     pub fn export(&self) -> Result<(), Box<dyn error::Error>> {
[INFO] [stdout]     |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lib.rs:475:13
[INFO] [stdout]     |
[INFO] [stdout] 475 |         let mut rels = self.fetch_nodes(rels_glob, &t, &|p: PathBuf| {
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]    --> src/lib.rs:485:33
[INFO] [stdout]     |
[INFO] [stdout] 485 |         Ok(rels.iter().map(|(a, b)| a.clone()).collect::<Vec<Node>>())
[INFO] [stdout]     |                                 ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rels_path`
[INFO] [stdout]    --> src/lib.rs:473:13
[INFO] [stdout]     |
[INFO] [stdout] 473 |         let rels_path = self.nodes_dir().to_str().unwrap().to_string();
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rels_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/lib.rs:538:9
[INFO] [stdout]     |
[INFO] [stdout] 538 |         fs::write(format!("{}.json", stem), jstr);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 538 |         let _ = fs::write(format!("{}.json", stem), jstr);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: unused dependency `log4rs`
[INFO] [stderr]  --> Cargo.toml:7:15
[INFO] [stderr]   |
[INFO] [stderr] 7 | [dependencies.log4rs]
[INFO] [stderr]   |               ^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `log4rs`
[INFO] [stderr] warning: `wysgy_core` (manifest) generated 1 warning
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 32.27s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: typemap v0.3.3
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 5`
[INFO] running `Command { std: "docker" "inspect" "6a83da06da5d016dd9610328524102f5354de32359e21a845cee7ae2b619413e", 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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "6a83da06da5d016dd9610328524102f5354de32359e21a845cee7ae2b619413e" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json" "--release", kill_on_drop: false }`
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/lib.rs:41:63
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn editor(fname: &str, editor: &str) -> Result<Child, Box<error::Error>> {
[INFO] [stdout]    |                                                               ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn editor(fname: &str, editor: &str) -> Result<Child, Box<dyn error::Error>> {
[INFO] [stdout]    |                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/lib.rs:47:61
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn file_to_string(fname: &String) -> Result<String, Box<error::Error>> {
[INFO] [stdout]    |                                                             ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn file_to_string(fname: &String) -> Result<String, Box<dyn error::Error>> {
[INFO] [stdout]    |                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/lib.rs:66:58
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub fn file_to_dict(fname: &String) -> Result<Value, Box<error::Error>> {
[INFO] [stdout]    |                                                          ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub fn file_to_dict(fname: &String) -> Result<Value, Box<dyn error::Error>> {
[INFO] [stdout]    |                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/lib.rs:72:64
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub fn existing_file_node(fname: &String) -> Result<Value, Box<error::Error>> {
[INFO] [stdout]    |                                                                ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub fn existing_file_node(fname: &String) -> Result<Value, Box<dyn error::Error>> {
[INFO] [stdout]    |                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:180:59
[INFO] [stdout]     |
[INFO] [stdout] 180 |     fn create_dir(&self, name: &String) -> Result<(), Box<error::Error>> {
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 180 |     fn create_dir(&self, name: &String) -> Result<(), Box<dyn error::Error>> {
[INFO] [stdout]     |                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:208:56
[INFO] [stdout]     |
[INFO] [stdout] 208 |     pub fn create(name: String) -> Result<Project, Box<error::Error>> {
[INFO] [stdout]     |                                                        ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 208 |     pub fn create(name: String) -> Result<Project, Box<dyn error::Error>> {
[INFO] [stdout]     |                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:234:54
[INFO] [stdout]     |
[INFO] [stdout] 234 |     pub fn open(name: String) -> Result<Project, Box<error::Error>> {
[INFO] [stdout]     |                                                      ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 234 |     pub fn open(name: String) -> Result<Project, Box<dyn error::Error>> {
[INFO] [stdout]     |                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:251:67
[INFO] [stdout]     |
[INFO] [stdout] 251 |     pub fn add_json_node(&self, label: &String) -> Result<(), Box<error::Error>> {
[INFO] [stdout]     |                                                                   ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 251 |     pub fn add_json_node(&self, label: &String) -> Result<(), Box<dyn error::Error>> {
[INFO] [stdout]     |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:268:25
[INFO] [stdout]     |
[INFO] [stdout] 268 |     ) -> Result<(), Box<error::Error>> {
[INFO] [stdout]     |                         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 268 |     ) -> Result<(), Box<dyn error::Error>> {
[INFO] [stdout]     |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:282:83
[INFO] [stdout]     |
[INFO] [stdout] 282 |     pub fn add_file_node(&self, label: &String, fname: &String) -> Result<(), Box<error::Error>> {
[INFO] [stdout]     |                                                                                   ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 282 |     pub fn add_file_node(&self, label: &String, fname: &String) -> Result<(), Box<dyn error::Error>> {
[INFO] [stdout]     |                                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:332:20
[INFO] [stdout]     |
[INFO] [stdout] 332 |         label_cb: &Fn(PathBuf) -> (String, String),
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 332 |         label_cb: &dyn Fn(PathBuf) -> (String, String),
[INFO] [stdout]     |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:416:25
[INFO] [stdout]     |
[INFO] [stdout] 416 |     ) -> Result<(), Box<error::Error>> {
[INFO] [stdout]     |                         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 416 |     ) -> Result<(), Box<dyn error::Error>> {
[INFO] [stdout]     |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:455:74
[INFO] [stdout]     |
[INFO] [stdout] 455 |     pub fn nodes_list(&self, t: Option<String>) -> Result<Vec<Node>, Box<error::Error>> {
[INFO] [stdout]     |                                                                          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 455 |     pub fn nodes_list(&self, t: Option<String>) -> Result<Vec<Node>, Box<dyn error::Error>> {
[INFO] [stdout]     |                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:472:72
[INFO] [stdout]     |
[INFO] [stdout] 472 |     pub fn rels_list(&self, t: Option<Value>) -> Result<Vec<Node>, Box<error::Error>> {
[INFO] [stdout]     |                                                                        ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 472 |     pub fn rels_list(&self, t: Option<Value>) -> Result<Vec<Node>, Box<dyn error::Error>> {
[INFO] [stdout]     |                                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:488:57
[INFO] [stdout]     |
[INFO] [stdout] 488 |     pub fn types_list(&self) -> Result<Vec<String>, Box<error::Error>> {
[INFO] [stdout]     |                                                         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 488 |     pub fn types_list(&self) -> Result<Vec<String>, Box<dyn error::Error>> {
[INFO] [stdout]     |                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:504:44
[INFO] [stdout]     |
[INFO] [stdout] 504 |     pub fn export(&self) -> Result<(), Box<error::Error>> {
[INFO] [stdout]     |                                            ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 504 |     pub fn export(&self) -> Result<(), Box<dyn error::Error>> {
[INFO] [stdout]     |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lib.rs:475:13
[INFO] [stdout]     |
[INFO] [stdout] 475 |         let mut rels = self.fetch_nodes(rels_glob, &t, &|p: PathBuf| {
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]    --> src/lib.rs:485:33
[INFO] [stdout]     |
[INFO] [stdout] 485 |         Ok(rels.iter().map(|(a, b)| a.clone()).collect::<Vec<Node>>())
[INFO] [stdout]     |                                 ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling wysgy_core v0.1.5 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused variable: `rels_path`
[INFO] [stdout]    --> src/lib.rs:473:13
[INFO] [stdout]     |
[INFO] [stdout] 473 |         let rels_path = self.nodes_dir().to_str().unwrap().to_string();
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rels_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/lib.rs:538:9
[INFO] [stdout]     |
[INFO] [stdout] 538 |         fs::write(format!("{}.json", stem), jstr);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 538 |         let _ = fs::write(format!("{}.json", stem), jstr);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> tests/editor.rs:10:16
[INFO] [stdout]    |
[INFO] [stdout] 10 |         panic!(format!("This editor ({}) does not exist", &ed));
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]    |
[INFO] [stdout] 10 -         panic!(format!("This editor ({}) does not exist", &ed));
[INFO] [stdout] 10 +         panic!("This editor ({}) does not exist", &ed);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]  --> tests/project.rs:8:13
[INFO] [stdout]   |
[INFO] [stdout] 8 |             p.delete();
[INFO] [stdout]   |             ^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]   = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]   |
[INFO] [stdout] 8 |             let _ = p.delete();
[INFO] [stdout]   |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/project.rs:19:5
[INFO] [stdout]    |
[INFO] [stdout] 19 |     Project::create(String::from("test2_notes_proj"));
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 19 |     let _ = Project::create(String::from("test2_notes_proj"));
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/project.rs:22:13
[INFO] [stdout]    |
[INFO] [stdout] 22 |             p.add_json_node(&String::from("node1"));
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 22 |             let _ = p.add_json_node(&String::from("node1"));
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/project.rs:23:13
[INFO] [stdout]    |
[INFO] [stdout] 23 |             p.delete();
[INFO] [stdout]    |             ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 23 |             let _ = p.delete();
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/project.rs:31:5
[INFO] [stdout]    |
[INFO] [stdout] 31 |     Project::create(String::from("test3_notes_proj"));
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 31 |     let _ = Project::create(String::from("test3_notes_proj"));
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/project.rs:38:13
[INFO] [stdout]    |
[INFO] [stdout] 38 |             p.delete();
[INFO] [stdout]    |             ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 38 |             let _ = p.delete();
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/project.rs:46:5
[INFO] [stdout]    |
[INFO] [stdout] 46 |     Project::create(String::from("test4_notes_proj"));
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 46 |     let _ = Project::create(String::from("test4_notes_proj"));
[INFO] [stdout]    |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/project.rs:49:13
[INFO] [stdout]    |
[INFO] [stdout] 49 |             p.add_json_node(&String::from("node1"));
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 49 |             let _ = p.add_json_node(&String::from("node1"));
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/project.rs:50:13
[INFO] [stdout]    |
[INFO] [stdout] 50 |             p.add_json_node(&String::from("node2"));
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 50 |             let _ = p.add_json_node(&String::from("node2"));
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> tests/project.rs:55:13
[INFO] [stdout]    |
[INFO] [stdout] 55 |             p.delete();
[INFO] [stdout]    |             ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 55 |             let _ = p.delete();
[INFO] [stdout]    |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> tests/json_parsing.rs:20:16
[INFO] [stdout]    |
[INFO] [stdout] 20 |         panic!(format!("This file ({}) does not exist", &l));
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]    |
[INFO] [stdout] 20 -         panic!(format!("This file ({}) does not exist", &l));
[INFO] [stdout] 20 +         panic!("This file ({}) does not exist", &l);
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/lib.rs:41:63
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn editor(fname: &str, editor: &str) -> Result<Child, Box<error::Error>> {
[INFO] [stdout]    |                                                               ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub fn editor(fname: &str, editor: &str) -> Result<Child, Box<dyn error::Error>> {
[INFO] [stdout]    |                                                               +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/lib.rs:47:61
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn file_to_string(fname: &String) -> Result<String, Box<error::Error>> {
[INFO] [stdout]    |                                                             ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 47 | pub fn file_to_string(fname: &String) -> Result<String, Box<dyn error::Error>> {
[INFO] [stdout]    |                                                             +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/lib.rs:66:58
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub fn file_to_dict(fname: &String) -> Result<Value, Box<error::Error>> {
[INFO] [stdout]    |                                                          ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 66 | pub fn file_to_dict(fname: &String) -> Result<Value, Box<dyn error::Error>> {
[INFO] [stdout]    |                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/lib.rs:72:64
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub fn existing_file_node(fname: &String) -> Result<Value, Box<error::Error>> {
[INFO] [stdout]    |                                                                ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 72 | pub fn existing_file_node(fname: &String) -> Result<Value, Box<dyn error::Error>> {
[INFO] [stdout]    |                                                                +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:180:59
[INFO] [stdout]     |
[INFO] [stdout] 180 |     fn create_dir(&self, name: &String) -> Result<(), Box<error::Error>> {
[INFO] [stdout]     |                                                           ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 180 |     fn create_dir(&self, name: &String) -> Result<(), Box<dyn error::Error>> {
[INFO] [stdout]     |                                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:208:56
[INFO] [stdout]     |
[INFO] [stdout] 208 |     pub fn create(name: String) -> Result<Project, Box<error::Error>> {
[INFO] [stdout]     |                                                        ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 208 |     pub fn create(name: String) -> Result<Project, Box<dyn error::Error>> {
[INFO] [stdout]     |                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:234:54
[INFO] [stdout]     |
[INFO] [stdout] 234 |     pub fn open(name: String) -> Result<Project, Box<error::Error>> {
[INFO] [stdout]     |                                                      ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 234 |     pub fn open(name: String) -> Result<Project, Box<dyn error::Error>> {
[INFO] [stdout]     |                                                      +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:251:67
[INFO] [stdout]     |
[INFO] [stdout] 251 |     pub fn add_json_node(&self, label: &String) -> Result<(), Box<error::Error>> {
[INFO] [stdout]     |                                                                   ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 251 |     pub fn add_json_node(&self, label: &String) -> Result<(), Box<dyn error::Error>> {
[INFO] [stdout]     |                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:268:25
[INFO] [stdout]     |
[INFO] [stdout] 268 |     ) -> Result<(), Box<error::Error>> {
[INFO] [stdout]     |                         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 268 |     ) -> Result<(), Box<dyn error::Error>> {
[INFO] [stdout]     |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:282:83
[INFO] [stdout]     |
[INFO] [stdout] 282 |     pub fn add_file_node(&self, label: &String, fname: &String) -> Result<(), Box<error::Error>> {
[INFO] [stdout]     |                                                                                   ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 282 |     pub fn add_file_node(&self, label: &String, fname: &String) -> Result<(), Box<dyn error::Error>> {
[INFO] [stdout]     |                                                                                   +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:332:20
[INFO] [stdout]     |
[INFO] [stdout] 332 |         label_cb: &Fn(PathBuf) -> (String, String),
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 332 |         label_cb: &dyn Fn(PathBuf) -> (String, String),
[INFO] [stdout]     |                    +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:416:25
[INFO] [stdout]     |
[INFO] [stdout] 416 |     ) -> Result<(), Box<error::Error>> {
[INFO] [stdout]     |                         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 416 |     ) -> Result<(), Box<dyn error::Error>> {
[INFO] [stdout]     |                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:455:74
[INFO] [stdout]     |
[INFO] [stdout] 455 |     pub fn nodes_list(&self, t: Option<String>) -> Result<Vec<Node>, Box<error::Error>> {
[INFO] [stdout]     |                                                                          ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 455 |     pub fn nodes_list(&self, t: Option<String>) -> Result<Vec<Node>, Box<dyn error::Error>> {
[INFO] [stdout]     |                                                                          +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:472:72
[INFO] [stdout]     |
[INFO] [stdout] 472 |     pub fn rels_list(&self, t: Option<Value>) -> Result<Vec<Node>, Box<error::Error>> {
[INFO] [stdout]     |                                                                        ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 472 |     pub fn rels_list(&self, t: Option<Value>) -> Result<Vec<Node>, Box<dyn error::Error>> {
[INFO] [stdout]     |                                                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:488:57
[INFO] [stdout]     |
[INFO] [stdout] 488 |     pub fn types_list(&self) -> Result<Vec<String>, Box<error::Error>> {
[INFO] [stdout]     |                                                         ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 488 |     pub fn types_list(&self) -> Result<Vec<String>, Box<dyn error::Error>> {
[INFO] [stdout]     |                                                         +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/lib.rs:504:44
[INFO] [stdout]     |
[INFO] [stdout] 504 |     pub fn export(&self) -> Result<(), Box<error::Error>> {
[INFO] [stdout]     |                                            ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 504 |     pub fn export(&self) -> Result<(), Box<dyn error::Error>> {
[INFO] [stdout]     |                                            +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/lib.rs:475:13
[INFO] [stdout]     |
[INFO] [stdout] 475 |         let mut rels = self.fetch_nodes(rels_glob, &t, &|p: PathBuf| {
[INFO] [stdout]     |             ----^^^^
[INFO] [stdout]     |             |
[INFO] [stdout]     |             help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `b`
[INFO] [stdout]    --> src/lib.rs:485:33
[INFO] [stdout]     |
[INFO] [stdout] 485 |         Ok(rels.iter().map(|(a, b)| a.clone()).collect::<Vec<Node>>())
[INFO] [stdout]     |                                 ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rels_path`
[INFO] [stdout]    --> src/lib.rs:473:13
[INFO] [stdout]     |
[INFO] [stdout] 473 |         let rels_path = self.nodes_dir().to_str().unwrap().to_string();
[INFO] [stdout]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rels_path`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/lib.rs:538:9
[INFO] [stdout]     |
[INFO] [stdout] 538 |         fs::write(format!("{}.json", stem), jstr);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 538 |         let _ = fs::write(format!("{}.json", stem), jstr);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: unused dependency `log4rs`
[INFO] [stderr]  --> Cargo.toml:7:15
[INFO] [stderr]   |
[INFO] [stderr] 7 | [dependencies.log4rs]
[INFO] [stderr]   |               ^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `log4rs`
[INFO] [stderr] warning: `wysgy_core` (manifest) generated 1 warning
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 1.27s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: typemap v0.3.3
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 5`
[INFO] running `Command { std: "docker" "inspect" "6a83da06da5d016dd9610328524102f5354de32359e21a845cee7ae2b619413e", 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=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "6a83da06da5d016dd9610328524102f5354de32359e21a845cee7ae2b619413e" "/opt/rustwide/cargo-home/bin/cargo" "+1.100.0-beta.1" "test" "--frozen" "--release", kill_on_drop: false }`
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/lib.rs:41:63
[INFO] [stderr]    |
[INFO] [stderr] 41 | pub fn editor(fname: &str, editor: &str) -> Result<Child, Box<error::Error>> {
[INFO] [stderr]    |                                                               ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 41 | pub fn editor(fname: &str, editor: &str) -> Result<Child, Box<dyn error::Error>> {
[INFO] [stderr]    |                                                               +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/lib.rs:47:61
[INFO] [stderr]    |
[INFO] [stderr] 47 | pub fn file_to_string(fname: &String) -> Result<String, Box<error::Error>> {
[INFO] [stderr]    |                                                             ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 47 | pub fn file_to_string(fname: &String) -> Result<String, Box<dyn error::Error>> {
[INFO] [stderr]    |                                                             +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/lib.rs:66:58
[INFO] [stderr]    |
[INFO] [stderr] 66 | pub fn file_to_dict(fname: &String) -> Result<Value, Box<error::Error>> {
[INFO] [stderr]    |                                                          ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 66 | pub fn file_to_dict(fname: &String) -> Result<Value, Box<dyn error::Error>> {
[INFO] [stderr]    |                                                          +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/lib.rs:72:64
[INFO] [stderr]    |
[INFO] [stderr] 72 | pub fn existing_file_node(fname: &String) -> Result<Value, Box<error::Error>> {
[INFO] [stderr]    |                                                                ^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]    |
[INFO] [stderr] 72 | pub fn existing_file_node(fname: &String) -> Result<Value, Box<dyn error::Error>> {
[INFO] [stderr]    |                                                                +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:180:59
[INFO] [stderr]     |
[INFO] [stderr] 180 |     fn create_dir(&self, name: &String) -> Result<(), Box<error::Error>> {
[INFO] [stderr]     |                                                           ^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 180 |     fn create_dir(&self, name: &String) -> Result<(), Box<dyn error::Error>> {
[INFO] [stderr]     |                                                           +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:208:56
[INFO] [stderr]     |
[INFO] [stderr] 208 |     pub fn create(name: String) -> Result<Project, Box<error::Error>> {
[INFO] [stderr]     |                                                        ^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 208 |     pub fn create(name: String) -> Result<Project, Box<dyn error::Error>> {
[INFO] [stderr]     |                                                        +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:234:54
[INFO] [stderr]     |
[INFO] [stderr] 234 |     pub fn open(name: String) -> Result<Project, Box<error::Error>> {
[INFO] [stderr]     |                                                      ^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 234 |     pub fn open(name: String) -> Result<Project, Box<dyn error::Error>> {
[INFO] [stderr]     |                                                      +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:251:67
[INFO] [stderr]     |
[INFO] [stderr] 251 |     pub fn add_json_node(&self, label: &String) -> Result<(), Box<error::Error>> {
[INFO] [stderr]     |                                                                   ^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 251 |     pub fn add_json_node(&self, label: &String) -> Result<(), Box<dyn error::Error>> {
[INFO] [stderr]     |                                                                   +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:268:25
[INFO] [stderr]     |
[INFO] [stderr] 268 |     ) -> Result<(), Box<error::Error>> {
[INFO] [stderr]     |                         ^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 268 |     ) -> Result<(), Box<dyn error::Error>> {
[INFO] [stderr]     |                         +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:282:83
[INFO] [stderr]     |
[INFO] [stderr] 282 |     pub fn add_file_node(&self, label: &String, fname: &String) -> Result<(), Box<error::Error>> {
[INFO] [stderr]     |                                                                                   ^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 282 |     pub fn add_file_node(&self, label: &String, fname: &String) -> Result<(), Box<dyn error::Error>> {
[INFO] [stderr]     |                                                                                   +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:332:20
[INFO] [stderr]     |
[INFO] [stderr] 332 |         label_cb: &Fn(PathBuf) -> (String, String),
[INFO] [stderr]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 332 |         label_cb: &dyn Fn(PathBuf) -> (String, String),
[INFO] [stderr]     |                    +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:416:25
[INFO] [stderr]     |
[INFO] [stderr] 416 |     ) -> Result<(), Box<error::Error>> {
[INFO] [stderr]     |                         ^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 416 |     ) -> Result<(), Box<dyn error::Error>> {
[INFO] [stderr]     |                         +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:455:74
[INFO] [stderr]     |
[INFO] [stderr] 455 |     pub fn nodes_list(&self, t: Option<String>) -> Result<Vec<Node>, Box<error::Error>> {
[INFO] [stderr]     |                                                                          ^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 455 |     pub fn nodes_list(&self, t: Option<String>) -> Result<Vec<Node>, Box<dyn error::Error>> {
[INFO] [stderr]     |                                                                          +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:472:72
[INFO] [stderr]     |
[INFO] [stderr] 472 |     pub fn rels_list(&self, t: Option<Value>) -> Result<Vec<Node>, Box<error::Error>> {
[INFO] [stderr]     |                                                                        ^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 472 |     pub fn rels_list(&self, t: Option<Value>) -> Result<Vec<Node>, Box<dyn error::Error>> {
[INFO] [stderr]     |                                                                        +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:488:57
[INFO] [stderr]     |
[INFO] [stderr] 488 |     pub fn types_list(&self) -> Result<Vec<String>, Box<error::Error>> {
[INFO] [stderr]     |                                                         ^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 488 |     pub fn types_list(&self) -> Result<Vec<String>, Box<dyn error::Error>> {
[INFO] [stderr]     |                                                         +++
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/lib.rs:504:44
[INFO] [stderr]     |
[INFO] [stderr] 504 |     pub fn export(&self) -> Result<(), Box<error::Error>> {
[INFO] [stderr]     |                                            ^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this is accepted in the current edition (Rust 2018) but is a hard error in Rust 2021!
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stderr] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stderr]     |
[INFO] [stderr] 504 |     pub fn export(&self) -> Result<(), Box<dyn error::Error>> {
[INFO] [stderr]     |                                            +++
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/lib.rs:475:13
[INFO] [stderr]     |
[INFO] [stderr] 475 |         let mut rels = self.fetch_nodes(rels_glob, &t, &|p: PathBuf| {
[INFO] [stderr]     |             ----^^^^
[INFO] [stderr]     |             |
[INFO] [stderr]     |             help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `b`
[INFO] [stderr]    --> src/lib.rs:485:33
[INFO] [stderr]     |
[INFO] [stderr] 485 |         Ok(rels.iter().map(|(a, b)| a.clone()).collect::<Vec<Node>>())
[INFO] [stderr]     |                                 ^ help: if this is intentional, prefix it with an underscore: `_b`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `rels_path`
[INFO] [stderr]    --> src/lib.rs:473:13
[INFO] [stderr]     |
[INFO] [stderr] 473 |         let rels_path = self.nodes_dir().to_str().unwrap().to_string();
[INFO] [stderr]     |             ^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_rels_path`
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]    --> src/lib.rs:538:9
[INFO] [stderr]     |
[INFO] [stderr] 538 |         fs::write(format!("{}.json", stem), jstr);
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]     |
[INFO] [stderr] 538 |         let _ = fs::write(format!("{}.json", stem), jstr);
[INFO] [stderr]     |         +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: `wysgy_core` (lib) generated 20 warnings (run `cargo fix --lib -p wysgy_core` to apply 19 suggestions)
[INFO] [stderr] warning: `wysgy_core` (lib test) generated 20 warnings (20 duplicates)
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]   --> tests/json_parsing.rs:20:16
[INFO] [stderr]    |
[INFO] [stderr] 20 |         panic!(format!("This file ({}) does not exist", &l));
[INFO] [stderr]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr]    = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr]    = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stderr] help: remove the `format!(..)` macro call
[INFO] [stderr]    |
[INFO] [stderr] 20 -         panic!(format!("This file ({}) does not exist", &l));
[INFO] [stderr] 20 +         panic!("This file ({}) does not exist", &l);
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]   --> tests/editor.rs:10:16
[INFO] [stderr]    |
[INFO] [stderr] 10 |         panic!(format!("This editor ({}) does not exist", &ed));
[INFO] [stderr]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr]    = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr]    = note: `#[warn(non_fmt_panics)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stderr] help: remove the `format!(..)` macro call
[INFO] [stderr]    |
[INFO] [stderr] 10 -         panic!(format!("This editor ({}) does not exist", &ed));
[INFO] [stderr] 10 +         panic!("This editor ({}) does not exist", &ed);
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]  --> tests/project.rs:8:13
[INFO] [stderr]   |
[INFO] [stderr] 8 |             p.delete();
[INFO] [stderr]   |             ^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr]   = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]   |
[INFO] [stderr] 8 |             let _ = p.delete();
[INFO] [stderr]   |             +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> tests/project.rs:19:5
[INFO] [stderr]    |
[INFO] [stderr] 19 |     Project::create(String::from("test2_notes_proj"));
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 19 |     let _ = Project::create(String::from("test2_notes_proj"));
[INFO] [stderr]    |     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> tests/project.rs:22:13
[INFO] [stderr]    |
[INFO] [stderr] 22 |             p.add_json_node(&String::from("node1"));
[INFO] [stderr]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 22 |             let _ = p.add_json_node(&String::from("node1"));
[INFO] [stderr]    |             +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> tests/project.rs:23:13
[INFO] [stderr]    |
[INFO] [stderr] 23 |             p.delete();
[INFO] [stderr]    |             ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 23 |             let _ = p.delete();
[INFO] [stderr]    |             +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> tests/project.rs:31:5
[INFO] [stderr]    |
[INFO] [stderr] 31 |     Project::create(String::from("test3_notes_proj"));
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 31 |     let _ = Project::create(String::from("test3_notes_proj"));
[INFO] [stderr]    |     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> tests/project.rs:38:13
[INFO] [stderr]    |
[INFO] [stderr] 38 |             p.delete();
[INFO] [stderr]    |             ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 38 |             let _ = p.delete();
[INFO] [stderr]    |             +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> tests/project.rs:46:5
[INFO] [stderr]    |
[INFO] [stderr] 46 |     Project::create(String::from("test4_notes_proj"));
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 46 |     let _ = Project::create(String::from("test4_notes_proj"));
[INFO] [stderr]    |     +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> tests/project.rs:49:13
[INFO] [stderr]    |
[INFO] [stderr] 49 |             p.add_json_node(&String::from("node1"));
[INFO] [stderr]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 49 |             let _ = p.add_json_node(&String::from("node1"));
[INFO] [stderr]    |             +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> tests/project.rs:50:13
[INFO] [stderr]    |
[INFO] [stderr] 50 |             p.add_json_node(&String::from("node2"));
[INFO] [stderr]    |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 50 |             let _ = p.add_json_node(&String::from("node2"));
[INFO] [stderr]    |             +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr]   --> tests/project.rs:55:13
[INFO] [stderr]    |
[INFO] [stderr] 55 |             p.delete();
[INFO] [stderr]    |             ^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] help: use `let _ = ...` to ignore the resulting value
[INFO] [stderr]    |
[INFO] [stderr] 55 |             let _ = p.delete();
[INFO] [stderr]    |             +++++++
[INFO] [stderr] 
[INFO] [stderr] warning: `wysgy_core` (test "json_parsing") generated 1 warning (run `cargo fix --test "json_parsing" -p wysgy_core` to apply 1 suggestion)
[INFO] [stderr] warning: `wysgy_core` (test "editor") generated 1 warning (run `cargo fix --test "editor" -p wysgy_core` to apply 1 suggestion)
[INFO] [stderr] warning: `wysgy_core` (test "project") generated 10 warnings
[INFO] [stderr] warning: unused dependency `log4rs`
[INFO] [stderr]  --> Cargo.toml:7:15
[INFO] [stderr]   |
[INFO] [stderr] 7 | [dependencies.log4rs]
[INFO] [stderr]   |               ^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `log4rs`
[INFO] [stderr] warning: `wysgy_core` (manifest) generated 1 warning
[INFO] [stderr]     Finished `release` profile [optimized] target(s) in 0.11s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: typemap v0.3.3
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 5`
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/release/build/wysgy_core/c7f8f829b372fc09/out/wysgy_core-c7f8f829b372fc09)
[INFO] [stdout] 
[INFO] [stderr]      Running tests/editor.rs (/opt/rustwide/target/release/build/wysgy_core/691b8a2e814d68d3/out/editor-691b8a2e814d68d3)
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stdout] test it_errors_on_nonexisting_editor ... ok
[INFO] [stderr]      Running tests/filenode.rs (/opt/rustwide/target/release/build/wysgy_core/4d722e5f3148454f/out/filenode-4d722e5f3148454f)
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 1 test
[INFO] [stderr]      Running tests/json_parsing.rs (/opt/rustwide/target/release/build/wysgy_core/920d93043c4bbb4b/out/json_parsing-920d93043c4bbb4b)
[INFO] [stdout] test it_creates_file_node ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 2 tests
[INFO] [stdout] test it_errors_on_nonexisting_file ... ok
[INFO] [stdout] test it_parses_existing_file ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/project.rs (/opt/rustwide/target/release/build/wysgy_core/fded13e9423acb32/out/project-fded13e9423acb32)
[INFO] [stdout] 
[INFO] [stdout] running 4 tests
[INFO] [stdout] test it_adds_nodes_to_project ... FAILED
[INFO] [stderr] error: test failed, to rerun pass `--test project`
[INFO] [stdout] test it_adds_relationships_to_project ... FAILED
[INFO] [stdout] test it_fails_to_add_relationships_to_project ... FAILED
[INFO] [stdout] test it_creates_deletes_project ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- it_adds_nodes_to_project stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'it_adds_nodes_to_project' (566) panicked at src/lib.rs:211:41:
[INFO] [stdout] Project folder "test2_notes_proj" already exists.: Os { code: 30, kind: ReadOnlyFilesystem, message: "Read-only file system" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x64e27d9e0bd1 - <<std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x64e27d9f4eba - core[a373ad73a504971]::fmt::write
[INFO] [stdout]    2:     0x64e27d9e50fc - <alloc[2e1b2a31b91974c5]::vec::Vec<u8> as core[a373ad73a504971]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x64e27d9bbcc6 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x64e27d9d8909 - std[617be2ca0a6fd877]::panicking::default_hook
[INFO] [stdout]    5:     0x64e27d971b90 - test[aada8e7e76ba119b]::test_main_inner::{closure#0}
[INFO] [stdout]    6:     0x64e27d9d8ac2 - std[617be2ca0a6fd877]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x64e27d9bbd72 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x64e27d9b4939 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace::<std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x64e27d9bc97d - __rustc[ea4f61d10b84890b]::rust_begin_unwind
[INFO] [stdout]   10:     0x64e27d9f55ec - core[a373ad73a504971]::panicking::panic_fmt
[INFO] [stdout]   11:     0x64e27d9f53c2 - core[a373ad73a504971]::result::unwrap_failed
[INFO] [stdout]   12:     0x64e27d9a768d - <wysgy_core[f8e1d0f9bf930061]::Project>::create
[INFO] [stdout]   13:     0x64e27d964374 - <project[c85cade2f34d423]::it_adds_nodes_to_project::{closure#0} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   14:     0x64e27d964fdb - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::<core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>>
[INFO] [stdout]   15:     0x64e27d9721b5 - test[aada8e7e76ba119b]::run_test::{closure#0}
[INFO] [stdout]   16:     0x64e27d96baa4 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>
[INFO] [stdout]   17:     0x64e27d975242 - <std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   18:     0x64e27d9e024f - <std[617be2ca0a6fd877]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   19:     0x775a4e31ddfa - <unknown>
[INFO] [stdout]   20:     0x775a4e3b13d4 - clone
[INFO] [stdout]   21:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- it_adds_relationships_to_project stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'it_adds_relationships_to_project' (567) panicked at src/lib.rs:211:41:
[INFO] [stdout] Project folder "test4_notes_proj" already exists.: Os { code: 30, kind: ReadOnlyFilesystem, message: "Read-only file system" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x64e27d9e0bd1 - <<std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x64e27d9f4eba - core[a373ad73a504971]::fmt::write
[INFO] [stdout]    2:     0x64e27d9e50fc - <alloc[2e1b2a31b91974c5]::vec::Vec<u8> as core[a373ad73a504971]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x64e27d9bbcc6 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x64e27d9d8909 - std[617be2ca0a6fd877]::panicking::default_hook
[INFO] [stdout]    5:     0x64e27d971b90 - test[aada8e7e76ba119b]::test_main_inner::{closure#0}
[INFO] [stdout]    6:     0x64e27d9d8ac2 - std[617be2ca0a6fd877]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x64e27d9bbd72 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x64e27d9b4939 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace::<std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x64e27d9bc97d - __rustc[ea4f61d10b84890b]::rust_begin_unwind
[INFO] [stdout]   10:     0x64e27d9f55ec - core[a373ad73a504971]::panicking::panic_fmt
[INFO] [stdout]   11:     0x64e27d9f53c2 - core[a373ad73a504971]::result::unwrap_failed
[INFO] [stdout]   12:     0x64e27d9a768d - <wysgy_core[f8e1d0f9bf930061]::Project>::create
[INFO] [stdout]   13:     0x64e27d9647c4 - <project[c85cade2f34d423]::it_adds_relationships_to_project::{closure#0} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   14:     0x64e27d964fdb - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::<core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>>
[INFO] [stdout]   15:     0x64e27d9721b5 - test[aada8e7e76ba119b]::run_test::{closure#0}
[INFO] [stdout]   16:     0x64e27d96baa4 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>
[INFO] [stdout]   17:     0x64e27d975242 - <std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   18:     0x64e27d9e024f - <std[617be2ca0a6fd877]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   19:     0x775a4e31ddfa - <unknown>
[INFO] [stdout]   20:     0x775a4e3b13d4 - clone
[INFO] [stdout]   21:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- it_fails_to_add_relationships_to_project stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'it_fails_to_add_relationships_to_project' (569) panicked at src/lib.rs:211:41:
[INFO] [stdout] Project folder "test3_notes_proj" already exists.: Os { code: 30, kind: ReadOnlyFilesystem, message: "Read-only file system" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x64e27d9e0bd1 - <<std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x64e27d9f4eba - core[a373ad73a504971]::fmt::write
[INFO] [stdout]    2:     0x64e27d9e50fc - <alloc[2e1b2a31b91974c5]::vec::Vec<u8> as core[a373ad73a504971]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x64e27d9bbcc6 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x64e27d9d8909 - std[617be2ca0a6fd877]::panicking::default_hook
[INFO] [stdout]    5:     0x64e27d971b90 - test[aada8e7e76ba119b]::test_main_inner::{closure#0}
[INFO] [stdout]    6:     0x64e27d9d8ac2 - std[617be2ca0a6fd877]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x64e27d9bbd72 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x64e27d9b4939 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace::<std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x64e27d9bc97d - __rustc[ea4f61d10b84890b]::rust_begin_unwind
[INFO] [stdout]   10:     0x64e27d9f55ec - core[a373ad73a504971]::panicking::panic_fmt
[INFO] [stdout]   11:     0x64e27d9f53c2 - core[a373ad73a504971]::result::unwrap_failed
[INFO] [stdout]   12:     0x64e27d9a768d - <wysgy_core[f8e1d0f9bf930061]::Project>::create
[INFO] [stdout]   13:     0x64e27d964c76 - <project[c85cade2f34d423]::it_fails_to_add_relationships_to_project::{closure#0} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   14:     0x64e27d964fdb - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::<core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>>
[INFO] [stdout]   15:     0x64e27d9721b5 - test[aada8e7e76ba119b]::run_test::{closure#0}
[INFO] [stdout]   16:     0x64e27d96baa4 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>
[INFO] [stdout]   17:     0x64e27d975242 - <std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   18:     0x64e27d9e024f - <std[617be2ca0a6fd877]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   19:     0x775a4e31ddfa - <unknown>
[INFO] [stdout]   20:     0x775a4e3b13d4 - clone
[INFO] [stdout]   21:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- it_creates_deletes_project stdout ----
[INFO] [stdout] 
[INFO] [stdout] thread 'it_creates_deletes_project' (568) panicked at src/lib.rs:211:41:
[INFO] [stdout] Project folder "test_notes_proj" already exists.: Os { code: 30, kind: ReadOnlyFilesystem, message: "Read-only file system" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x64e27d9e0bd1 - <<std[617be2ca0a6fd877]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[a373ad73a504971]::fmt::Display>::fmt
[INFO] [stdout]    1:     0x64e27d9f4eba - core[a373ad73a504971]::fmt::write
[INFO] [stdout]    2:     0x64e27d9e50fc - <alloc[2e1b2a31b91974c5]::vec::Vec<u8> as core[a373ad73a504971]::io::write::Write>::write_fmt
[INFO] [stdout]    3:     0x64e27d9bbcc6 - std[617be2ca0a6fd877]::panicking::default_hook::{closure#0}
[INFO] [stdout]    4:     0x64e27d9d8909 - std[617be2ca0a6fd877]::panicking::default_hook
[INFO] [stdout]    5:     0x64e27d971b90 - test[aada8e7e76ba119b]::test_main_inner::{closure#0}
[INFO] [stdout]    6:     0x64e27d9d8ac2 - std[617be2ca0a6fd877]::panicking::panic_with_hook
[INFO] [stdout]    7:     0x64e27d9bbd72 - std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}
[INFO] [stdout]    8:     0x64e27d9b4939 - std[617be2ca0a6fd877]::sys::backtrace::__rust_end_short_backtrace::<std[617be2ca0a6fd877]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]    9:     0x64e27d9bc97d - __rustc[ea4f61d10b84890b]::rust_begin_unwind
[INFO] [stdout]   10:     0x64e27d9f55ec - core[a373ad73a504971]::panicking::panic_fmt
[INFO] [stdout]   11:     0x64e27d9f53c2 - core[a373ad73a504971]::result::unwrap_failed
[INFO] [stdout]   12:     0x64e27d9a768d - <wysgy_core[f8e1d0f9bf930061]::Project>::create
[INFO] [stdout]   13:     0x64e27d964639 - <project[c85cade2f34d423]::it_creates_deletes_project::{closure#0} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]   14:     0x64e27d964fdb - test[aada8e7e76ba119b]::__rust_begin_short_backtrace::<core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>, fn() -> core[a373ad73a504971]::result::Result<(), alloc[2e1b2a31b91974c5]::string::String>>
[INFO] [stdout]   15:     0x64e27d9721b5 - test[aada8e7e76ba119b]::run_test::{closure#0}
[INFO] [stdout]   16:     0x64e27d96baa4 - std[617be2ca0a6fd877]::sys::backtrace::__rust_begin_short_backtrace::<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>
[INFO] [stdout]   17:     0x64e27d975242 - <std[617be2ca0a6fd877]::thread::lifecycle::spawn_unchecked<test[aada8e7e76ba119b]::run_test::{closure#1}, ()>::{closure#1} as core[a373ad73a504971]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]   18:     0x64e27d9e024f - <std[617be2ca0a6fd877]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]   19:     0x775a4e31ddfa - <unknown>
[INFO] [stdout]   20:     0x775a4e3b13d4 - clone
[INFO] [stdout]   21:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     it_adds_nodes_to_project
[INFO] [stdout]     it_adds_relationships_to_project
[INFO] [stdout]     it_creates_deletes_project
[INFO] [stdout]     it_fails_to_add_relationships_to_project
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 0 passed; 4 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "6a83da06da5d016dd9610328524102f5354de32359e21a845cee7ae2b619413e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6a83da06da5d016dd9610328524102f5354de32359e21a845cee7ae2b619413e", kill_on_drop: false }`
[INFO] [stdout] 6a83da06da5d016dd9610328524102f5354de32359e21a845cee7ae2b619413e
