[INFO] cloning repository https://github.com/leitingtod/jungle
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/leitingtod/jungle" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fleitingtod%2Fjungle", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fleitingtod%2Fjungle'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] d0953d5af111aaca6cac9863e19562a96df4df15
[INFO] checking leitingtod/jungle against try#e622d8d7bed4f2668d446e06c6c1436ecae15796 for pr-156776
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fleitingtod%2Fjungle" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/leitingtod/jungle
[INFO] finished tweaking git repo https://github.com/leitingtod/jungle
[INFO] tweaked toml for git repo https://github.com/leitingtod/jungle written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/leitingtod/jungle on toolchain e622d8d7bed4f2668d446e06c6c1436ecae15796
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+e622d8d7bed4f2668d446e06c6c1436ecae15796" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/leitingtod/jungle already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+e622d8d7bed4f2668d446e06c6c1436ecae15796" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[ERROR] error running command: no output for 300 seconds
[INFO] checking leitingtod/jungle against try#e622d8d7bed4f2668d446e06c6c1436ecae15796 for pr-156776
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fleitingtod%2Fjungle" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/leitingtod/jungle
[INFO] finished tweaking git repo https://github.com/leitingtod/jungle
[INFO] tweaked toml for git repo https://github.com/leitingtod/jungle written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/leitingtod/jungle on toolchain e622d8d7bed4f2668d446e06c6c1436ecae15796
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+e622d8d7bed4f2668d446e06c6c1436ecae15796" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/leitingtod/jungle already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+e622d8d7bed4f2668d446e06c6c1436ecae15796" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded sha-1 v0.8.1
[INFO] [stderr]   Downloaded serde_derive v1.0.98
[INFO] [stderr]   Downloaded block-padding v0.1.4
[INFO] [stderr]   Downloaded pretty_env_logger v0.3.0
[INFO] [stderr]   Downloaded autocfg v0.1.5
[INFO] [stderr]   Downloaded pest_generator v2.1.0
[INFO] [stderr]   Downloaded maplit v1.0.1
[INFO] [stderr]   Downloaded utf8-ranges v1.0.3
[INFO] [stderr]   Downloaded open v1.3.1
[INFO] [stderr]   Downloaded rustc-demangle v0.1.15
[INFO] [stderr]   Downloaded getopts v0.2.19
[INFO] [stderr]   Downloaded ucd-util v0.1.5
[INFO] [stderr]   Downloaded error-chain v0.12.1
[INFO] [stderr]   Downloaded pest_meta v2.1.1
[INFO] [stderr]   Downloaded cc v1.0.38
[INFO] [stderr]   Downloaded handlebars v2.0.1
[INFO] [stderr]   Downloaded ucd-trie v0.1.2
[INFO] [stderr]   Downloaded aho-corasick v0.7.4
[INFO] [stderr]   Downloaded backtrace v0.3.33
[INFO] [stderr]   Downloaded pest v2.1.1
[INFO] [stderr]   Downloaded serde v1.0.98
[INFO] [stderr]   Downloaded pulldown-cmark v0.5.3
[INFO] [stderr]   Downloaded chrono v0.4.7
[INFO] [stderr]   Downloaded syn v0.15.42
[INFO] [stderr]   Downloaded regex v1.2.0
[INFO] [stderr]   Downloaded regex-syntax v0.6.10
[INFO] [stderr]   Downloaded libc v0.2.60
[INFO] [stderr]   Downloaded winapi v0.3.7
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+e622d8d7bed4f2668d446e06c6c1436ecae15796" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 6911a59022fe4267cfc29da78ecc8bc476f0e38d59f6476b91a180ad6d7efad3
[INFO] running `Command { std: "docker" "start" "-a" "6911a59022fe4267cfc29da78ecc8bc476f0e38d59f6476b91a180ad6d7efad3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6911a59022fe4267cfc29da78ecc8bc476f0e38d59f6476b91a180ad6d7efad3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6911a59022fe4267cfc29da78ecc8bc476f0e38d59f6476b91a180ad6d7efad3", kill_on_drop: false }`
[INFO] [stdout] 6911a59022fe4267cfc29da78ecc8bc476f0e38d59f6476b91a180ad6d7efad3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+e622d8d7bed4f2668d446e06c6c1436ecae15796" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] a6ca98f1b69661c002a18a4e53560c565a7f3e1bcb450893e1301f4008d421c2
[INFO] running `Command { std: "docker" "start" "-a" "a6ca98f1b69661c002a18a4e53560c565a7f3e1bcb450893e1301f4008d421c2", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.60
[INFO] [stderr]    Compiling autocfg v0.1.5
[INFO] [stderr]     Checking cfg-if v0.1.9
[INFO] [stderr]    Compiling syn v0.15.42
[INFO] [stderr]    Compiling cc v1.0.38
[INFO] [stderr]     Checking ucd-util v0.1.5
[INFO] [stderr]    Compiling serde v1.0.98
[INFO] [stderr]     Checking lazy_static v1.3.0
[INFO] [stderr]    Compiling ucd-trie v0.1.2
[INFO] [stderr]     Checking utf8-ranges v1.0.3
[INFO] [stderr]    Compiling ryu v1.0.0
[INFO] [stderr]     Checking unicode-width v0.1.5
[INFO] [stderr]    Compiling maplit v1.0.1
[INFO] [stderr]    Compiling bitflags v1.1.0
[INFO] [stderr]     Checking aho-corasick v0.7.4
[INFO] [stderr]     Checking quick-error v1.2.2
[INFO] [stderr]     Checking log v0.4.8
[INFO] [stderr]     Checking thread_local v0.3.6
[INFO] [stderr]    Compiling unicase v2.4.0
[INFO] [stderr]    Compiling error-chain v0.12.1
[INFO] [stderr]     Checking regex-syntax v0.6.10
[INFO] [stderr]     Checking humantime v1.2.0
[INFO] [stderr]     Checking termcolor v1.0.5
[INFO] [stderr]    Compiling pest v2.1.1
[INFO] [stderr]     Checking rustc-demangle v0.1.15
[INFO] [stderr]     Checking itoa v0.4.4
[INFO] [stderr]    Compiling num-traits v0.2.8
[INFO] [stderr]    Compiling num-integer v0.1.41
[INFO] [stderr]    Compiling pulldown-cmark v0.5.3
[INFO] [stderr]     Checking getopts v0.2.19
[INFO] [stderr]     Checking textwrap v0.11.0
[INFO] [stderr]     Checking vec_map v0.8.1
[INFO] [stderr]     Checking ansi_term v0.11.0
[INFO] [stderr]     Checking yaml-rust v0.3.5
[INFO] [stderr]     Checking same-file v1.0.5
[INFO] [stderr]     Checking open v1.3.1
[INFO] [stderr]     Checking walkdir v2.2.9
[INFO] [stderr]     Checking atty v0.2.13
[INFO] [stderr]     Checking time v0.1.42
[INFO] [stderr]    Compiling backtrace-sys v0.1.31
[INFO] [stderr]     Checking clap v2.33.0
[INFO] [stderr]    Compiling pest_meta v2.1.1
[INFO] [stderr]     Checking chrono v0.4.7
[INFO] [stderr]     Checking backtrace v0.3.33
[INFO] [stderr]     Checking regex v1.2.0
[INFO] [stderr]    Compiling pest_generator v2.1.0
[INFO] [stderr]    Compiling serde_derive v1.0.98
[INFO] [stderr]     Checking env_logger v0.6.2
[INFO] [stderr]     Checking pretty_env_logger v0.3.0
[INFO] [stderr]    Compiling pest_derive v2.1.0
[INFO] [stderr]     Checking hashbrown v0.5.0
[INFO] [stderr]     Checking serde_json v1.0.40
[INFO] [stderr]     Checking handlebars v2.0.1
[INFO] [stderr]     Checking jungle v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `serde_json::to_string`
[INFO] [stdout]  --> src/book/mod.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use serde_json::to_string;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `make_book_data`
[INFO] [stdout]  --> src/book/mod.rs:8:21
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::render::{make_book_data, render_book, render_summary, RenderContext};
[INFO] [stdout]   |                     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DirEntry`
[INFO] [stdout]  --> src/book/book.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 | use walkdir::{DirEntry, WalkDir};
[INFO] [stdout]   |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json::to_string`
[INFO] [stdout]  --> src/book/mod.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use serde_json::to_string;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `make_book_data`
[INFO] [stdout]  --> src/book/mod.rs:8:21
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::render::{make_book_data, render_book, render_summary, RenderContext};
[INFO] [stdout]   |                     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DirEntry`
[INFO] [stdout]  --> src/book/book.rs:4:15
[INFO] [stdout]   |
[INFO] [stdout] 4 | use walkdir::{DirEntry, WalkDir};
[INFO] [stdout]   |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/book/book.rs:41:44
[INFO] [stdout]    |
[INFO] [stdout] 41 | #[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                            ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/book/book.rs:41:44
[INFO] [stdout]    |
[INFO] [stdout] 41 | #[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                            ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: `#[warn(unexpected_cfgs)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/book/book.rs:41:55
[INFO] [stdout]    |
[INFO] [stdout] 41 | #[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                                       ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/book/book.rs:41:55
[INFO] [stdout]    |
[INFO] [stdout] 41 | #[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                                       ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/book/book.rs:62:44
[INFO] [stdout]    |
[INFO] [stdout] 62 | #[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                            ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/book/book.rs:62:44
[INFO] [stdout]    |
[INFO] [stdout] 62 | #[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                            ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/book/book.rs:62:55
[INFO] [stdout]    |
[INFO] [stdout] 62 | #[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                                       ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/book/book.rs:62:55
[INFO] [stdout]    |
[INFO] [stdout] 62 | #[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                                       ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BorrowMut` and `Borrow`
[INFO] [stdout]  --> src/book/summary.rs:1:19
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::borrow::{Borrow, BorrowMut};
[INFO] [stdout]   |                   ^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `BorrowMut` and `Borrow`
[INFO] [stdout]  --> src/book/summary.rs:1:19
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::borrow::{Borrow, BorrowMut};
[INFO] [stdout]   |                   ^^^^^^  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DirEntry`
[INFO] [stdout]  --> src/book/summary.rs:5:15
[INFO] [stdout]   |
[INFO] [stdout] 5 | use walkdir::{DirEntry, WalkDir};
[INFO] [stdout]   |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DirEntry`
[INFO] [stdout]  --> src/book/summary.rs:5:15
[INFO] [stdout]   |
[INFO] [stdout] 5 | use walkdir::{DirEntry, WalkDir};
[INFO] [stdout]   |               ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/book/summary.rs:53:44
[INFO] [stdout]    |
[INFO] [stdout] 53 | #[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                            ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/book/summary.rs:53:55
[INFO] [stdout]    |
[INFO] [stdout] 53 | #[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                                       ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/book/summary.rs:53:44
[INFO] [stdout]    |
[INFO] [stdout] 53 | #[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                            ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/book/summary.rs:95:35
[INFO] [stdout]    |
[INFO] [stdout] 95 | #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                   ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/book/summary.rs:53:55
[INFO] [stdout]    |
[INFO] [stdout] 53 | #[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                                       ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/book/summary.rs:95:46
[INFO] [stdout]    |
[INFO] [stdout] 95 | #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                              ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::error::Error`
[INFO] [stdout]  --> src/render/mod.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::error::Error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/book/summary.rs:95:35
[INFO] [stdout]    |
[INFO] [stdout] 95 | #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                   ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `File`
[INFO] [stdout]  --> src/render/mod.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::fs::{File, read_to_string};
[INFO] [stdout]   |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/render/mod.rs:4:17
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]   --> src/book/summary.rs:95:46
[INFO] [stdout]    |
[INFO] [stdout] 95 | #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                              ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: no expected values for `feature`
[INFO] [stdout]    = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]    = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]    = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::error::Error`
[INFO] [stdout]  --> src/render/mod.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::error::Error;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Context`, `Helper`, `Output`, `RenderError`, and `to_json`
[INFO] [stdout]  --> src/render/mod.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     Context, Handlebars, Helper, JsonRender, Output, RenderError, to_json,
[INFO] [stdout]   |     ^^^^^^^              ^^^^^^              ^^^^^^  ^^^^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `File`
[INFO] [stdout]  --> src/render/mod.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::fs::{File, read_to_string};
[INFO] [stdout]   |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json::to_string`
[INFO] [stdout]   --> src/render/mod.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use serde_json::to_string;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Path`
[INFO] [stdout]  --> src/render/mod.rs:4:17
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::path::{Path, PathBuf};
[INFO] [stdout]   |                 ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `load_file_contents`
[INFO] [stdout]   --> src/render/mod.rs:15:20
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::utils::{load_file_contents, write_file};
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]    --> src/render/mod.rs:136:35
[INFO] [stdout]     |
[INFO] [stdout] 136 | #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]     |                                   ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: no expected values for `feature`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Context`, `Helper`, `Output`, `RenderError`, and `to_json`
[INFO] [stdout]  --> src/render/mod.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 |     Context, Handlebars, Helper, JsonRender, Output, RenderError, to_json,
[INFO] [stdout]   |     ^^^^^^^              ^^^^^^              ^^^^^^  ^^^^^^^^^^^  ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]    --> src/render/mod.rs:136:46
[INFO] [stdout]     |
[INFO] [stdout] 136 | #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]     |                                              ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: no expected values for `feature`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `serde_json::to_string`
[INFO] [stdout]   --> src/render/mod.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use serde_json::to_string;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]  --> src/theme/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::path::Path;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `load_file_contents`
[INFO] [stdout]   --> src/render/mod.rs:15:20
[INFO] [stdout]    |
[INFO] [stdout] 15 | use crate::utils::{load_file_contents, write_file};
[INFO] [stdout]    |                    ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::utils::load_file_contents`
[INFO] [stdout]  --> src/theme/mod.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::utils::load_file_contents;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]    --> src/render/mod.rs:136:35
[INFO] [stdout]     |
[INFO] [stdout] 136 | #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]     |                                   ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: no expected values for `feature`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Serialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unexpected `cfg` condition value: `cargo-clippy`
[INFO] [stdout]    --> src/render/mod.rs:136:46
[INFO] [stdout]     |
[INFO] [stdout] 136 | #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]     |                                              ^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: no expected values for `feature`
[INFO] [stdout]     = note: using a cfg inside a derive macro will use the cfgs from the destination crate and not the ones from the defining crate
[INFO] [stdout]     = help: try referring to `Deserialize` crate for guidance on how handle this unexpected cfg
[INFO] [stdout]     = note: see <https://doc.rust-lang.org/nightly/rustc/check-cfg/cargo-specifics.html> for more information about checking conditional configuration
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]  --> src/theme/mod.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::path::Path;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::utils::load_file_contents`
[INFO] [stdout]  --> src/theme/mod.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::utils::load_file_contents;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/lib.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | /     error_chain! {
[INFO] [stdout] 24 | |         foreign_links {
[INFO] [stdout] 25 | |             Io(std::io::Error) #[doc = "A wrapper around `std::io::Error`"];
[INFO] [stdout] 26 | |             HandlebarsRender(handlebars::RenderError) #[doc = "Handlebars rendering failed"];
[INFO] [stdout] ...  |
[INFO] [stdout] 53 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `impl_error_chain_processed` which comes from the expansion of the macro `error_chain` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `std::error::Error::description`: use the Display impl or to_string()
[INFO] [stdout]   --> src/lib.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | /     error_chain! {
[INFO] [stdout] 24 | |         foreign_links {
[INFO] [stdout] 25 | |             Io(std::io::Error) #[doc = "A wrapper around `std::io::Error`"];
[INFO] [stdout] 26 | |             HandlebarsRender(handlebars::RenderError) #[doc = "Handlebars rendering failed"];
[INFO] [stdout] ...  |
[INFO] [stdout] 53 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `impl_error_chain_processed` which comes from the expansion of the macro `error_chain` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `JsonRender`
[INFO] [stdout]  --> src/render/mod.rs:7:34
[INFO] [stdout]   |
[INFO] [stdout] 7 |     Context, Handlebars, Helper, JsonRender, Output, RenderError, to_json,
[INFO] [stdout]   |                                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `JsonRender`
[INFO] [stdout]  --> src/render/mod.rs:7:34
[INFO] [stdout]   |
[INFO] [stdout] 7 |     Context, Handlebars, Helper, JsonRender, Output, RenderError, to_json,
[INFO] [stdout]   |                                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/book/book.rs:41:44
[INFO] [stdout]    |
[INFO] [stdout] 41 | #[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                            ^--------
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            `Serialize` is not local
[INFO] [stdout]    |                                            move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Book`
[INFO] [stdout] 42 | pub struct Book {
[INFO] [stdout]    |            ---- `Book` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/book/book.rs:41:55
[INFO] [stdout]    |
[INFO] [stdout] 41 | #[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                                       ^----------
[INFO] [stdout]    |                                                       |
[INFO] [stdout]    |                                                       `Deserialize` is not local
[INFO] [stdout]    |                                                       move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Book`
[INFO] [stdout] 42 | pub struct Book {
[INFO] [stdout]    |            ---- `Book` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/book/book.rs:62:44
[INFO] [stdout]    |
[INFO] [stdout] 62 | #[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                            ^--------
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            `Serialize` is not local
[INFO] [stdout]    |                                            move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Chapter`
[INFO] [stdout] 63 | pub struct Chapter {
[INFO] [stdout]    |            ------- `Chapter` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/book/book.rs:62:55
[INFO] [stdout]    |
[INFO] [stdout] 62 | #[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                                       ^----------
[INFO] [stdout]    |                                                       |
[INFO] [stdout]    |                                                       `Deserialize` is not local
[INFO] [stdout]    |                                                       move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Chapter`
[INFO] [stdout] 63 | pub struct Chapter {
[INFO] [stdout]    |            ------- `Chapter` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/book/summary.rs:53:44
[INFO] [stdout]    |
[INFO] [stdout] 53 | #[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                            ^--------
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            `Serialize` is not local
[INFO] [stdout]    |                                            move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Summary`
[INFO] [stdout] 54 | pub struct Summary {
[INFO] [stdout]    |            ------- `Summary` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/book/summary.rs:53:55
[INFO] [stdout]    |
[INFO] [stdout] 53 | #[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                                       ^----------
[INFO] [stdout]    |                                                       |
[INFO] [stdout]    |                                                       `Deserialize` is not local
[INFO] [stdout]    |                                                       move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Summary`
[INFO] [stdout] 54 | pub struct Summary {
[INFO] [stdout]    |            ------- `Summary` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/book/summary.rs:95:35
[INFO] [stdout]    |
[INFO] [stdout] 95 | #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                   ^--------
[INFO] [stdout]    |                                   |
[INFO] [stdout]    |                                   `Serialize` is not local
[INFO] [stdout]    |                                   move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Link`
[INFO] [stdout] 96 | pub struct Link {
[INFO] [stdout]    |            ---- `Link` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/book/summary.rs:95:46
[INFO] [stdout]    |
[INFO] [stdout] 95 | #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                              ^----------
[INFO] [stdout]    |                                              |
[INFO] [stdout]    |                                              `Deserialize` is not local
[INFO] [stdout]    |                                              move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Link`
[INFO] [stdout] 96 | pub struct Link {
[INFO] [stdout]    |            ---- `Link` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/render/mod.rs:136:35
[INFO] [stdout]     |
[INFO] [stdout] 136 | #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]     |                                   ^--------
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   `Serialize` is not local
[INFO] [stdout]     |                                   move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_RenderContext`
[INFO] [stdout] 137 | pub struct RenderContext {
[INFO] [stdout]     |            ------------- `RenderContext` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/render/mod.rs:136:46
[INFO] [stdout]     |
[INFO] [stdout] 136 | #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]     |                                              ^----------
[INFO] [stdout]     |                                              |
[INFO] [stdout]     |                                              `Deserialize` is not local
[INFO] [stdout]     |                                              move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_RenderContext`
[INFO] [stdout] 137 | pub struct RenderContext {
[INFO] [stdout]     |            ------------- `RenderContext` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/book/book.rs:41:44
[INFO] [stdout]    |
[INFO] [stdout] 41 | #[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                            ^--------
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            `Serialize` is not local
[INFO] [stdout]    |                                            move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Book`
[INFO] [stdout] 42 | pub struct Book {
[INFO] [stdout]    |            ---- `Book` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: `#[warn(non_local_definitions)]` on by default
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/book/book.rs:41:55
[INFO] [stdout]    |
[INFO] [stdout] 41 | #[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                                       ^----------
[INFO] [stdout]    |                                                       |
[INFO] [stdout]    |                                                       `Deserialize` is not local
[INFO] [stdout]    |                                                       move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Book`
[INFO] [stdout] 42 | pub struct Book {
[INFO] [stdout]    |            ---- `Book` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/book/book.rs:62:44
[INFO] [stdout]    |
[INFO] [stdout] 62 | #[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                            ^--------
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            `Serialize` is not local
[INFO] [stdout]    |                                            move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Chapter`
[INFO] [stdout] 63 | pub struct Chapter {
[INFO] [stdout]    |            ------- `Chapter` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/book/book.rs:62:55
[INFO] [stdout]    |
[INFO] [stdout] 62 | #[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                                       ^----------
[INFO] [stdout]    |                                                       |
[INFO] [stdout]    |                                                       `Deserialize` is not local
[INFO] [stdout]    |                                                       move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Chapter`
[INFO] [stdout] 63 | pub struct Chapter {
[INFO] [stdout]    |            ------- `Chapter` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/book/summary.rs:53:44
[INFO] [stdout]    |
[INFO] [stdout] 53 | #[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                            ^--------
[INFO] [stdout]    |                                            |
[INFO] [stdout]    |                                            `Serialize` is not local
[INFO] [stdout]    |                                            move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Summary`
[INFO] [stdout] 54 | pub struct Summary {
[INFO] [stdout]    |            ------- `Summary` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/book/summary.rs:53:55
[INFO] [stdout]    |
[INFO] [stdout] 53 | #[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                                       ^----------
[INFO] [stdout]    |                                                       |
[INFO] [stdout]    |                                                       `Deserialize` is not local
[INFO] [stdout]    |                                                       move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Summary`
[INFO] [stdout] 54 | pub struct Summary {
[INFO] [stdout]    |            ------- `Summary` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/book/summary.rs:95:35
[INFO] [stdout]    |
[INFO] [stdout] 95 | #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                   ^--------
[INFO] [stdout]    |                                   |
[INFO] [stdout]    |                                   `Serialize` is not local
[INFO] [stdout]    |                                   move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_Link`
[INFO] [stdout] 96 | pub struct Link {
[INFO] [stdout]    |            ---- `Link` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]   --> src/book/summary.rs:95:46
[INFO] [stdout]    |
[INFO] [stdout] 95 | #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]    |                                              ^----------
[INFO] [stdout]    |                                              |
[INFO] [stdout]    |                                              `Deserialize` is not local
[INFO] [stdout]    |                                              move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_Link`
[INFO] [stdout] 96 | pub struct Link {
[INFO] [stdout]    |            ---- `Link` is not local
[INFO] [stdout]    |
[INFO] [stdout]    = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]    = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]    = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]    = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]    = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/render/mod.rs:136:35
[INFO] [stdout]     |
[INFO] [stdout] 136 | #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]     |                                   ^--------
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   `Serialize` is not local
[INFO] [stdout]     |                                   move the `impl` block outside of this constant `_IMPL_SERIALIZE_FOR_RenderContext`
[INFO] [stdout] 137 | pub struct RenderContext {
[INFO] [stdout]     |            ------------- `RenderContext` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Serialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Serialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Serialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: non-local `impl` definition, `impl` blocks should be written at the same level as their item
[INFO] [stdout]    --> src/render/mod.rs:136:46
[INFO] [stdout]     |
[INFO] [stdout] 136 | #[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
[INFO] [stdout]     |                                              ^----------
[INFO] [stdout]     |                                              |
[INFO] [stdout]     |                                              `Deserialize` is not local
[INFO] [stdout]     |                                              move the `impl` block outside of this constant `_IMPL_DESERIALIZE_FOR_RenderContext`
[INFO] [stdout] 137 | pub struct RenderContext {
[INFO] [stdout]     |            ------------- `RenderContext` is not local
[INFO] [stdout]     |
[INFO] [stdout]     = note: the derive macro `Deserialize` defines the non-local `impl`, and may need to be changed
[INFO] [stdout]     = note: the derive macro `Deserialize` may come from an old version of the `serde_derive` crate, try updating your dependency with `cargo update -p serde_derive`
[INFO] [stdout]     = note: an `impl` is never scoped, even when it is nested inside an item, as it may impact type checking outside of that item, which can be the case if neither the trait or the self type are at the same nesting level as the `impl`
[INFO] [stdout]     = note: items in an anonymous const item (`const _: () = { ... }`) are treated as in the same scope as the anonymous const's declaration for the purpose of this lint
[INFO] [stdout]     = note: this warning originates in the derive macro `Deserialize` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 3.61s
[INFO] running `Command { std: "docker" "inspect" "a6ca98f1b69661c002a18a4e53560c565a7f3e1bcb450893e1301f4008d421c2", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a6ca98f1b69661c002a18a4e53560c565a7f3e1bcb450893e1301f4008d421c2", kill_on_drop: false }`
[INFO] [stdout] a6ca98f1b69661c002a18a4e53560c565a7f3e1bcb450893e1301f4008d421c2
