[INFO] cloning repository https://github.com/tscs37/flathunter-rs [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/tscs37/flathunter-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftscs37%2Fflathunter-rs", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftscs37%2Fflathunter-rs'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 462ca6618d0dd2e27ce6f7b3e871a7ea27118dec [INFO] checking tscs37/flathunter-rs against master#dfd7b8d03fb93d0e03147d28b3be6d93260fa94d for pr-87050 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ftscs37%2Fflathunter-rs" "/workspace/builds/worker-9/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-9/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/tscs37/flathunter-rs on toolchain dfd7b8d03fb93d0e03147d28b3be6d93260fa94d [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+dfd7b8d03fb93d0e03147d28b3be6d93260fa94d" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/tscs37/flathunter-rs [INFO] finished tweaking git repo https://github.com/tscs37/flathunter-rs [INFO] tweaked toml for git repo https://github.com/tscs37/flathunter-rs written to /workspace/builds/worker-9/source/Cargo.toml [INFO] crate git repo https://github.com/tscs37/flathunter-rs already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+dfd7b8d03fb93d0e03147d28b3be6d93260fa94d" "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] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-9/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-9/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:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+dfd7b8d03fb93d0e03147d28b3be6d93260fa94d" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 81bb5f07f05cc7a816825fc87c6166243a6cf6c34bb7606100f2d806628665fc [INFO] running `Command { std: "docker" "start" "-a" "81bb5f07f05cc7a816825fc87c6166243a6cf6c34bb7606100f2d806628665fc", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "81bb5f07f05cc7a816825fc87c6166243a6cf6c34bb7606100f2d806628665fc", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "81bb5f07f05cc7a816825fc87c6166243a6cf6c34bb7606100f2d806628665fc", kill_on_drop: false }` [INFO] [stdout] 81bb5f07f05cc7a816825fc87c6166243a6cf6c34bb7606100f2d806628665fc [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-9/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-9/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" "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:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+dfd7b8d03fb93d0e03147d28b3be6d93260fa94d" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 8b787b26620964fc792d8ddfb7e0cdaa71555e5f0b173bc572e577382561b6a9 [INFO] running `Command { std: "docker" "start" "-a" "8b787b26620964fc792d8ddfb7e0cdaa71555e5f0b173bc572e577382561b6a9", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.58 [INFO] [stderr] Compiling version_check v0.1.5 [INFO] [stderr] Compiling rand_core v0.4.0 [INFO] [stderr] Compiling cc v1.0.37 [INFO] [stderr] Compiling syn v0.15.38 [INFO] [stderr] Compiling byteorder v1.3.2 [INFO] [stderr] Compiling siphasher v0.2.3 [INFO] [stderr] Checking smallvec v0.6.10 [INFO] [stderr] Compiling serde v1.0.93 [INFO] [stderr] Checking either v1.5.2 [INFO] [stderr] Compiling semver-parser v0.7.0 [INFO] [stderr] Checking scopeguard v0.3.3 [INFO] [stderr] Checking fnv v1.0.6 [INFO] [stderr] Checking stable_deref_trait v1.1.1 [INFO] [stderr] Compiling arrayvec v0.4.10 [INFO] [stderr] Compiling string_cache_shared v0.3.0 [INFO] [stderr] Compiling pkg-config v0.3.14 [INFO] [stderr] Checking itoa v0.4.4 [INFO] [stderr] Compiling memchr v2.2.0 [INFO] [stderr] Checking nodrop v0.1.13 [INFO] [stderr] Compiling regex v1.1.7 [INFO] [stderr] Checking memoffset v0.2.1 [INFO] [stderr] Checking ucd-util v0.1.3 [INFO] [stderr] Checking rustc-demangle v0.1.15 [INFO] [stderr] Compiling failure_derive v0.1.5 [INFO] [stderr] Compiling build_const v0.2.1 [INFO] [stderr] Checking void v1.0.2 [INFO] [stderr] Checking utf8-ranges v1.0.3 [INFO] [stderr] Compiling unicode-xid v0.0.4 [INFO] [stderr] Compiling openssl v0.10.23 [INFO] [stderr] Compiling ryu v1.0.0 [INFO] [stderr] Compiling num-bigint v0.2.2 [INFO] [stderr] Checking foreign-types-shared v0.1.1 [INFO] [stderr] Compiling quote v0.3.15 [INFO] [stderr] Checking mac v0.1.1 [INFO] [stderr] Compiling rustc-serialize v0.3.24 [INFO] [stderr] Checking new_debug_unreachable v1.0.3 [INFO] [stderr] Checking try-lock v0.2.2 [INFO] [stderr] Checking precomputed-hash v0.1.1 [INFO] [stderr] Checking indexmap v1.0.2 [INFO] [stderr] Checking adler32 v1.0.3 [INFO] [stderr] Compiling native-tls v0.2.3 [INFO] [stderr] Checking utf-8 v0.7.5 [INFO] [stderr] Checking lazy_static v0.2.11 [INFO] [stderr] Compiling encoding_rs v0.8.17 [INFO] [stderr] Checking dtoa v0.4.4 [INFO] [stderr] Checking openssl-probe v0.1.2 [INFO] [stderr] Checking arc-swap v0.3.11 [INFO] [stderr] Checking bit-vec v0.4.4 [INFO] [stderr] Checking quick-error v1.2.2 [INFO] [stderr] Checking termcolor v0.3.6 [INFO] [stderr] Compiling num-traits v0.2.8 [INFO] [stderr] Compiling num-integer v0.1.41 [INFO] [stderr] Compiling backtrace v0.3.31 [INFO] [stderr] Compiling num-complex v0.2.3 [INFO] [stderr] Compiling num-iter v0.1.39 [INFO] [stderr] Compiling num-rational v0.2.2 [INFO] [stderr] Checking log v0.4.6 [INFO] [stderr] Checking thread_local v0.3.6 [INFO] [stderr] Checking tokio-trace-core v0.2.0 [INFO] [stderr] Checking try_from v0.3.2 [INFO] [stderr] Checking tokio-sync v0.1.6 [INFO] [stderr] Checking owning_ref v0.4.0 [INFO] [stderr] Compiling synom v0.11.3 [INFO] [stderr] Checking unreachable v0.1.1 [INFO] [stderr] Checking regex-syntax v0.6.7 [INFO] [stderr] Checking foreign-types v0.3.2 [INFO] [stderr] Checking itertools v0.8.0 [INFO] [stderr] Checking futf v0.1.4 [INFO] [stderr] Compiling rand_core v0.3.1 [INFO] [stderr] Compiling rand_jitter v0.1.4 [INFO] [stderr] Compiling semver v0.9.0 [INFO] [stderr] Checking unicode-normalization v0.1.8 [INFO] [stderr] Checking miniz_oxide v0.2.1 [INFO] [stderr] Compiling proc-macro2 v0.4.30 [INFO] [stderr] Checking crossbeam-queue v0.1.2 [INFO] [stderr] Checking humantime v1.2.0 [INFO] [stderr] Compiling crc v1.8.1 [INFO] [stderr] Checking crc32fast v1.2.0 [INFO] [stderr] Checking bit-set v0.4.0 [INFO] [stderr] Compiling rand_xorshift v0.1.1 [INFO] [stderr] Compiling rand_hc v0.1.0 [INFO] [stderr] Compiling rand_isaac v0.1.1 [INFO] [stderr] Compiling rand_pcg v0.1.2 [INFO] [stderr] Compiling rand_chacha v0.1.1 [INFO] [stderr] Checking want v0.0.6 [INFO] [stderr] Checking log v0.3.9 [INFO] [stderr] Checking fern v0.5.8 [INFO] [stderr] Checking debug_unreachable v0.1.1 [INFO] [stderr] Checking tokio-timer v0.2.11 [INFO] [stderr] Checking tokio-current-thread v0.1.6 [INFO] [stderr] Compiling syn v0.11.11 [INFO] [stderr] Checking lock_api v0.1.5 [INFO] [stderr] Checking tendril v0.3.1 [INFO] [stderr] Compiling rustc_version v0.2.3 [INFO] [stderr] Compiling unicase v1.4.2 [INFO] [stderr] Compiling error-chain v0.12.1 [INFO] [stderr] Compiling unicase v2.4.0 [INFO] [stderr] Compiling quote v0.6.12 [INFO] [stderr] Checking base64 v0.10.1 [INFO] [stderr] Compiling parking_lot_core v0.4.0 [INFO] [stderr] Checking crossbeam-epoch v0.7.1 [INFO] [stderr] Compiling phf_shared v0.7.24 [INFO] [stderr] Checking aho-corasick v0.7.3 [INFO] [stderr] Compiling rand_os v0.1.3 [INFO] [stderr] Checking phf v0.7.24 [INFO] [stderr] Compiling rand v0.6.5 [INFO] [stderr] Compiling backtrace-sys v0.1.28 [INFO] [stderr] Compiling openssl-sys v0.9.47 [INFO] [stderr] Compiling miniz_oxide_c_api v0.2.1 [INFO] [stderr] Checking mime v0.3.13 [INFO] [stderr] Checking crossbeam-deque v0.7.1 [INFO] [stderr] Checking idna v0.1.5 [INFO] [stderr] Checking iovec v0.1.2 [INFO] [stderr] Checking num_cpus v1.10.1 [INFO] [stderr] Checking net2 v0.2.33 [INFO] [stderr] Checking time v0.1.42 [INFO] [stderr] Checking rand v0.4.6 [INFO] [stderr] Checking signal-hook-registry v1.0.1 [INFO] [stderr] Checking futures-cpupool v0.1.8 [INFO] [stderr] Checking bytes v0.4.12 [INFO] [stderr] Checking flate2 v1.0.9 [INFO] [stderr] Checking url v1.7.2 [INFO] [stderr] Checking mio v0.6.19 [INFO] [stderr] Checking signal-hook v0.1.9 [INFO] [stderr] Checking uuid v0.6.5 [INFO] [stderr] Checking tempdir v0.3.7 [INFO] [stderr] Checking tokio-io v0.1.12 [INFO] [stderr] Checking http v0.1.17 [INFO] [stderr] Checking string v0.2.0 [INFO] [stderr] Checking tokio-buf v0.1.1 [INFO] [stderr] Checking chrono v0.4.7 [INFO] [stderr] Compiling phf_generator v0.7.24 [INFO] [stderr] Compiling phf_codegen v0.7.24 [INFO] [stderr] Compiling string_cache_codegen v0.4.2 [INFO] [stderr] Compiling mime_guess v2.0.0-alpha.6 [INFO] [stderr] Checking cookie v0.12.0 [INFO] [stderr] Checking tokio-threadpool v0.1.14 [INFO] [stderr] Checking uuid v0.7.4 [INFO] [stderr] Compiling string_cache v0.6.2 [INFO] [stderr] Compiling markup5ever v0.3.2 [INFO] [stderr] Checking parking_lot v0.7.1 [INFO] [stderr] Checking tokio-reactor v0.1.9 [INFO] [stderr] Checking num v0.2.0 [INFO] [stderr] Checking tokio-tcp v0.1.3 [INFO] [stderr] Checking h2 v0.1.24 [INFO] [stderr] Checking http-body v0.1.0 [INFO] [stderr] Checking tokio v0.1.21 [INFO] [stderr] Checking publicsuffix v1.5.2 [INFO] [stderr] Checking os_type v2.2.0 [INFO] [stderr] Compiling synstructure v0.10.2 [INFO] [stderr] Compiling html5ever v0.18.0 [INFO] [stderr] Compiling serde_derive v1.0.93 [INFO] [stderr] Checking hyper v0.12.30 [INFO] [stderr] Checking failure v0.1.5 [INFO] [stderr] Checking hyper-tls v0.3.2 [INFO] [stderr] Checking serde_json v1.0.40 [INFO] [stderr] Checking serde_urlencoded v0.5.5 [INFO] [stderr] Checking toml v0.4.10 [INFO] [stderr] Checking rust_decimal v1.0.1 [INFO] [stderr] Checking serde_yaml v0.8.9 [INFO] [stderr] Checking human-panic v1.0.1 [INFO] [stderr] Checking cookie_store v0.7.0 [INFO] [stderr] Checking reqwest v0.9.18 [INFO] [stderr] Checking select v0.4.2 [INFO] [stderr] Checking flathunter-rs v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] error[E0412]: cannot find type `NoneError` in module `std::option` [INFO] [stdout] --> src/errors.rs:6:24 [INFO] [stdout] | [INFO] [stdout] 6 | impl From for NoneError { [INFO] [stdout] | ^^^^^^^^^ not found in `std::option` [INFO] [stdout] | [INFO] [stdout] help: there is an enum variant `crate::ErrorKind::NoneError`; try using the variant's enum [INFO] [stdout] | [INFO] [stdout] 6 | impl From for NoneError { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0412]: cannot find type `NoneError` in module `std::option` [INFO] [stdout] --> src/errors.rs:7:27 [INFO] [stdout] | [INFO] [stdout] 7 | fn from(_: std::option::NoneError) -> Self { [INFO] [stdout] | ^^^^^^^^^ not found in `std::option` [INFO] [stdout] | [INFO] [stdout] help: there is an enum variant `crate::ErrorKind::NoneError`; try using the variant's enum [INFO] [stdout] | [INFO] [stdout] 7 | fn from(_: crate::ErrorKind) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0412]: cannot find type `NoneError` in module `std::option` [INFO] [stdout] --> src/errors.rs:22:24 [INFO] [stdout] | [INFO] [stdout] 22 | impl From for Error { [INFO] [stdout] | ^^^^^^^^^ not found in `std::option` [INFO] [stdout] | [INFO] [stdout] help: there is an enum variant `crate::ErrorKind::NoneError`; try using the variant's enum [INFO] [stdout] | [INFO] [stdout] 22 | impl From for Error { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0412]: cannot find type `NoneError` in module `std::option` [INFO] [stdout] --> src/errors.rs:23:27 [INFO] [stdout] | [INFO] [stdout] 23 | fn from(s: std::option::NoneError) -> Self { [INFO] [stdout] | ^^^^^^^^^ not found in `std::option` [INFO] [stdout] | [INFO] [stdout] help: there is an enum variant `crate::ErrorKind::NoneError`; try using the variant's enum [INFO] [stdout] | [INFO] [stdout] 23 | fn from(s: crate::ErrorKind) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary trailing semicolon [INFO] [stdout] --> src/notifiers/webhook.rs:69:10 [INFO] [stdout] | [INFO] [stdout] 69 | }; [INFO] [stdout] | ^ help: remove this semicolon [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(redundant_semicolons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary trailing semicolon [INFO] [stdout] --> src/notifiers/webhook.rs:118:10 [INFO] [stdout] | [INFO] [stdout] 118 | }; [INFO] [stdout] | ^ help: remove this semicolon [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string() [INFO] [stdout] --> src/errors.rs:28:1 [INFO] [stdout] | [INFO] [stdout] 28 | / error_chain! { [INFO] [stdout] 29 | | // The type defined for this error. These are the conventional [INFO] [stdout] 30 | | // and recommended names, but they can be arbitrarily chosen. [INFO] [stdout] 31 | | // [INFO] [stdout] ... | [INFO] [stdout] 93 | | } [INFO] [stdout] 94 | | } [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` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0412]: cannot find type `NoneError` in module `std::option` [INFO] [stdout] --> src/errors.rs:6:24 [INFO] [stdout] | [INFO] [stdout] 6 | impl From for NoneError { [INFO] [stdout] | ^^^^^^^^^ not found in `std::option` [INFO] [stdout] | [INFO] [stdout] help: there is an enum variant `crate::ErrorKind::NoneError`; try using the variant's enum [INFO] [stdout] | [INFO] [stdout] 6 | impl From for NoneError { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0412]: cannot find type `NoneError` in module `std::option` [INFO] [stdout] --> src/errors.rs:7:27 [INFO] [stdout] | [INFO] [stdout] 7 | fn from(_: std::option::NoneError) -> Self { [INFO] [stdout] | ^^^^^^^^^ not found in `std::option` [INFO] [stdout] | [INFO] [stdout] help: there is an enum variant `crate::ErrorKind::NoneError`; try using the variant's enum [INFO] [stdout] | [INFO] [stdout] 7 | fn from(_: crate::ErrorKind) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0412]: cannot find type `NoneError` in module `std::option` [INFO] [stdout] --> src/errors.rs:22:24 [INFO] [stdout] | [INFO] [stdout] 22 | impl From for Error { [INFO] [stdout] | ^^^^^^^^^ not found in `std::option` [INFO] [stdout] | [INFO] [stdout] help: there is an enum variant `crate::ErrorKind::NoneError`; try using the variant's enum [INFO] [stdout] | [INFO] [stdout] 22 | impl From for Error { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0412]: cannot find type `NoneError` in module `std::option` [INFO] [stdout] --> src/errors.rs:23:27 [INFO] [stdout] | [INFO] [stdout] 23 | fn from(s: std::option::NoneError) -> Self { [INFO] [stdout] | ^^^^^^^^^ not found in `std::option` [INFO] [stdout] | [INFO] [stdout] help: there is an enum variant `crate::ErrorKind::NoneError`; try using the variant's enum [INFO] [stdout] | [INFO] [stdout] 23 | fn from(s: crate::ErrorKind) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string() [INFO] [stdout] --> src/errors.rs:28:1 [INFO] [stdout] | [INFO] [stdout] 28 | / error_chain! { [INFO] [stdout] 29 | | // The type defined for this error. These are the conventional [INFO] [stdout] 30 | | // and recommended names, but they can be arbitrarily chosen. [INFO] [stdout] 31 | | // [INFO] [stdout] ... | [INFO] [stdout] 93 | | } [INFO] [stdout] 94 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `impl_error_chain_processed` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary trailing semicolon [INFO] [stdout] --> src/notifiers/webhook.rs:69:10 [INFO] [stdout] | [INFO] [stdout] 69 | }; [INFO] [stdout] | ^ help: remove this semicolon [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(redundant_semicolons)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary trailing semicolon [INFO] [stdout] --> src/notifiers/webhook.rs:118:10 [INFO] [stdout] | [INFO] [stdout] 118 | }; [INFO] [stdout] | ^ help: remove this semicolon [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string() [INFO] [stdout] --> src/errors.rs:28:1 [INFO] [stdout] | [INFO] [stdout] 28 | / error_chain! { [INFO] [stdout] 29 | | // The type defined for this error. These are the conventional [INFO] [stdout] 30 | | // and recommended names, but they can be arbitrarily chosen. [INFO] [stdout] 31 | | // [INFO] [stdout] ... | [INFO] [stdout] 93 | | } [INFO] [stdout] 94 | | } [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` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string() [INFO] [stdout] --> src/errors.rs:28:1 [INFO] [stdout] | [INFO] [stdout] 28 | / error_chain! { [INFO] [stdout] 29 | | // The type defined for this error. These are the conventional [INFO] [stdout] 30 | | // and recommended names, but they can be arbitrarily chosen. [INFO] [stdout] 31 | | // [INFO] [stdout] ... | [INFO] [stdout] 93 | | } [INFO] [stdout] 94 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in the macro `impl_error_chain_processed` (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a function that returns `Result` [INFO] [stdout] --> src/main.rs:110:53 [INFO] [stdout] | [INFO] [stdout] 103 | / fn run(notif: Box) -> Result { [INFO] [stdout] 104 | | debug!("Loading configuration"); [INFO] [stdout] 105 | | let mut config = get_config()?; [INFO] [stdout] 106 | | let mut results = Vec::new(); [INFO] [stdout] ... | [INFO] [stdout] 110 | | let crawler = crawlers::get_crawler(url.clone())?; [INFO] [stdout] | | ^ use `.ok_or(...)?` to provide an error compatible with `std::result::Result` [INFO] [stdout] ... | [INFO] [stdout] 141 | | Ok(config) [INFO] [stdout] 142 | | } [INFO] [stdout] | |_- this function returns a `Result` [INFO] [stdout] | [INFO] [stdout] = help: the trait `FromResidual>` is not implemented for `std::result::Result` [INFO] [stdout] = note: required by `from_residual` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a function that returns `Result` [INFO] [stdout] --> src/main.rs:110:53 [INFO] [stdout] | [INFO] [stdout] 103 | / fn run(notif: Box) -> Result { [INFO] [stdout] 104 | | debug!("Loading configuration"); [INFO] [stdout] 105 | | let mut config = get_config()?; [INFO] [stdout] 106 | | let mut results = Vec::new(); [INFO] [stdout] ... | [INFO] [stdout] 110 | | let crawler = crawlers::get_crawler(url.clone())?; [INFO] [stdout] | | ^ use `.ok_or(...)?` to provide an error compatible with `std::result::Result` [INFO] [stdout] ... | [INFO] [stdout] 141 | | Ok(config) [INFO] [stdout] 142 | | } [INFO] [stdout] | |_- this function returns a `Result` [INFO] [stdout] | [INFO] [stdout] = help: the trait `FromResidual>` is not implemented for `std::result::Result` [INFO] [stdout] = note: required by `from_residual` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a closure that returns `Result` [INFO] [stdout] --> src/crawlers/immoscout.rs:76:74 [INFO] [stdout] | [INFO] [stdout] 76 | ...se_ids.map(|e| -> Result { Ok(e.parent()?.attr("href")?.split("/").last()?.replace(".html", "").to_owned()) }); [INFO] [stdout] | -------------------------------------^-------------------------------------------------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | use `.ok_or(...)?` to provide an error compatible with `std::result::Result` [INFO] [stdout] | this function returns a `Result` [INFO] [stdout] | [INFO] [stdout] = help: the trait `FromResidual>` is not implemented for `std::result::Result` [INFO] [stdout] = note: required by `from_residual` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a closure that returns `Result` [INFO] [stdout] --> src/crawlers/immoscout.rs:76:88 [INFO] [stdout] | [INFO] [stdout] 76 | ...se_ids.map(|e| -> Result { Ok(e.parent()?.attr("href")?.split("/").last()?.replace(".html", "").to_owned()) }); [INFO] [stdout] | ---------------------------------------------------^------------------------------------------------------ [INFO] [stdout] | | | [INFO] [stdout] | | use `.ok_or(...)?` to provide an error compatible with `std::result::Result` [INFO] [stdout] | this function returns a `Result` [INFO] [stdout] | [INFO] [stdout] = help: the trait `FromResidual>` is not implemented for `std::result::Result` [INFO] [stdout] = note: required by `from_residual` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a closure that returns `Result` [INFO] [stdout] --> src/crawlers/immoscout.rs:76:107 [INFO] [stdout] | [INFO] [stdout] 76 | ...se_ids.map(|e| -> Result { Ok(e.parent()?.attr("href")?.split("/").last()?.replace(".html", "").to_owned()) }); [INFO] [stdout] | ----------------------------------------------------------------------^----------------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | use `.ok_or(...)?` to provide an error compatible with `std::result::Result` [INFO] [stdout] | this function returns a `Result` [INFO] [stdout] | [INFO] [stdout] = help: the trait `FromResidual>` is not implemented for `std::result::Result` [INFO] [stdout] = note: required by `from_residual` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a closure that returns `Result` [INFO] [stdout] --> src/crawlers/immoscout.rs:78:76 [INFO] [stdout] | [INFO] [stdout] 78 | ...e_urls.map(|e| -> Result { Ok(e.parent()?.attr("href")?.split("/").last()?.replace(".html", "").to_owned()) }); [INFO] [stdout] | -------------------------------------^-------------------------------------------------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | use `.ok_or(...)?` to provide an error compatible with `std::result::Result` [INFO] [stdout] | this function returns a `Result` [INFO] [stdout] | [INFO] [stdout] = help: the trait `FromResidual>` is not implemented for `std::result::Result` [INFO] [stdout] = note: required by `from_residual` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a closure that returns `Result` [INFO] [stdout] --> src/crawlers/immoscout.rs:78:90 [INFO] [stdout] | [INFO] [stdout] 78 | ...e_urls.map(|e| -> Result { Ok(e.parent()?.attr("href")?.split("/").last()?.replace(".html", "").to_owned()) }); [INFO] [stdout] | ---------------------------------------------------^------------------------------------------------------ [INFO] [stdout] | | | [INFO] [stdout] | | use `.ok_or(...)?` to provide an error compatible with `std::result::Result` [INFO] [stdout] | this function returns a `Result` [INFO] [stdout] | [INFO] [stdout] = help: the trait `FromResidual>` is not implemented for `std::result::Result` [INFO] [stdout] = note: required by `from_residual` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a closure that returns `Result` [INFO] [stdout] --> src/crawlers/immoscout.rs:78:109 [INFO] [stdout] | [INFO] [stdout] 78 | ...e_urls.map(|e| -> Result { Ok(e.parent()?.attr("href")?.split("/").last()?.replace(".html", "").to_owned()) }); [INFO] [stdout] | ----------------------------------------------------------------------^----------------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | use `.ok_or(...)?` to provide an error compatible with `std::result::Result` [INFO] [stdout] | this function returns a `Result` [INFO] [stdout] | [INFO] [stdout] = help: the trait `FromResidual>` is not implemented for `std::result::Result` [INFO] [stdout] = note: required by `from_residual` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a closure that returns `Result` [INFO] [stdout] --> src/crawlers/immoscout.rs:76:74 [INFO] [stdout] | [INFO] [stdout] 76 | ...se_ids.map(|e| -> Result { Ok(e.parent()?.attr("href")?.split("/").last()?.replace(".html", "").to_owned()) }); [INFO] [stdout] | -------------------------------------^-------------------------------------------------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | use `.ok_or(...)?` to provide an error compatible with `std::result::Result` [INFO] [stdout] | this function returns a `Result` [INFO] [stdout] | [INFO] [stdout] = help: the trait `FromResidual>` is not implemented for `std::result::Result` [INFO] [stdout] = note: required by `from_residual` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result` [INFO] [stdout] --> src/crawlers/immoscout.rs:91:45 [INFO] [stdout] | [INFO] [stdout] 70 | / fn extract_data(&self, data: String) -> Result> { [INFO] [stdout] 71 | | debug!("extracting page data"); [INFO] [stdout] 72 | | let document = Document::from(data.as_str()); [INFO] [stdout] 73 | | [INFO] [stdout] ... | [INFO] [stdout] 91 | | let price = expose.3.children().nth(0)?.text(); [INFO] [stdout] | | ^ use `.ok_or(...)?` to provide an error compatible with `std::result::Result, errors::Error>` [INFO] [stdout] ... | [INFO] [stdout] 109 | | Ok(out) [INFO] [stdout] 110 | | } [INFO] [stdout] | |___- this function returns a `Result` [INFO] [stdout] | [INFO] [stdout] = help: the trait `FromResidual>` is not implemented for `std::result::Result, errors::Error>` [INFO] [stdout] = note: required by `from_residual` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a closure that returns `Result` [INFO] [stdout] --> src/crawlers/immoscout.rs:76:88 [INFO] [stdout] | [INFO] [stdout] 76 | ...se_ids.map(|e| -> Result { Ok(e.parent()?.attr("href")?.split("/").last()?.replace(".html", "").to_owned()) }); [INFO] [stdout] | ---------------------------------------------------^------------------------------------------------------ [INFO] [stdout] | | | [INFO] [stdout] | | use `.ok_or(...)?` to provide an error compatible with `std::result::Result` [INFO] [stdout] | this function returns a `Result` [INFO] [stdout] | [INFO] [stdout] = help: the trait `FromResidual>` is not implemented for `std::result::Result` [INFO] [stdout] = note: required by `from_residual` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result` [INFO] [stdout] --> src/crawlers/immoscout.rs:93:49 [INFO] [stdout] | [INFO] [stdout] 70 | / fn extract_data(&self, data: String) -> Result> { [INFO] [stdout] 71 | | debug!("extracting page data"); [INFO] [stdout] 72 | | let document = Document::from(data.as_str()); [INFO] [stdout] 73 | | [INFO] [stdout] ... | [INFO] [stdout] 93 | | let price = price.trim().split(" ").nth(0)?.trim(); [INFO] [stdout] | | ^ use `.ok_or(...)?` to provide an error compatible with `std::result::Result, errors::Error>` [INFO] [stdout] ... | [INFO] [stdout] 109 | | Ok(out) [INFO] [stdout] 110 | | } [INFO] [stdout] | |___- this function returns a `Result` [INFO] [stdout] | [INFO] [stdout] = help: the trait `FromResidual>` is not implemented for `std::result::Result, errors::Error>` [INFO] [stdout] = note: required by `from_residual` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a closure that returns `Result` [INFO] [stdout] --> src/crawlers/immoscout.rs:76:107 [INFO] [stdout] | [INFO] [stdout] 76 | ...se_ids.map(|e| -> Result { Ok(e.parent()?.attr("href")?.split("/").last()?.replace(".html", "").to_owned()) }); [INFO] [stdout] | ----------------------------------------------------------------------^----------------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | use `.ok_or(...)?` to provide an error compatible with `std::result::Result` [INFO] [stdout] | this function returns a `Result` [INFO] [stdout] | [INFO] [stdout] = help: the trait `FromResidual>` is not implemented for `std::result::Result` [INFO] [stdout] = note: required by `from_residual` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result` [INFO] [stdout] --> src/crawlers/immoscout.rs:96:44 [INFO] [stdout] | [INFO] [stdout] 70 | / fn extract_data(&self, data: String) -> Result> { [INFO] [stdout] 71 | | debug!("extracting page data"); [INFO] [stdout] 72 | | let document = Document::from(data.as_str()); [INFO] [stdout] 73 | | [INFO] [stdout] ... | [INFO] [stdout] 96 | | let size = expose.3.children().nth(1)?.text(); [INFO] [stdout] | | ^ use `.ok_or(...)?` to provide an error compatible with `std::result::Result, errors::Error>` [INFO] [stdout] ... | [INFO] [stdout] 109 | | Ok(out) [INFO] [stdout] 110 | | } [INFO] [stdout] | |___- this function returns a `Result` [INFO] [stdout] | [INFO] [stdout] = help: the trait `FromResidual>` is not implemented for `std::result::Result, errors::Error>` [INFO] [stdout] = note: required by `from_residual` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result` [INFO] [stdout] --> src/crawlers/immoscout.rs:98:47 [INFO] [stdout] | [INFO] [stdout] 70 | / fn extract_data(&self, data: String) -> Result> { [INFO] [stdout] 71 | | debug!("extracting page data"); [INFO] [stdout] 72 | | let document = Document::from(data.as_str()); [INFO] [stdout] 73 | | [INFO] [stdout] ... | [INFO] [stdout] 98 | | let size = size.trim().split(" ").nth(0)?.trim().replace(",", "."); [INFO] [stdout] | | ^ use `.ok_or(...)?` to provide an error compatible with `std::result::Result, errors::Error>` [INFO] [stdout] ... | [INFO] [stdout] 109 | | Ok(out) [INFO] [stdout] 110 | | } [INFO] [stdout] | |___- this function returns a `Result` [INFO] [stdout] | [INFO] [stdout] = help: the trait `FromResidual>` is not implemented for `std::result::Result, errors::Error>` [INFO] [stdout] = note: required by `from_residual` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a closure that returns `Result` [INFO] [stdout] --> src/crawlers/immoscout.rs:78:76 [INFO] [stdout] | [INFO] [stdout] 78 | ...e_urls.map(|e| -> Result { Ok(e.parent()?.attr("href")?.split("/").last()?.replace(".html", "").to_owned()) }); [INFO] [stdout] | -------------------------------------^-------------------------------------------------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | use `.ok_or(...)?` to provide an error compatible with `std::result::Result` [INFO] [stdout] | this function returns a `Result` [INFO] [stdout] | [INFO] [stdout] = help: the trait `FromResidual>` is not implemented for `std::result::Result` [INFO] [stdout] = note: required by `from_residual` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result` [INFO] [stdout] --> src/crawlers/immoscout.rs:100:45 [INFO] [stdout] | [INFO] [stdout] 70 | / fn extract_data(&self, data: String) -> Result> { [INFO] [stdout] 71 | | debug!("extracting page data"); [INFO] [stdout] 72 | | let document = Document::from(data.as_str()); [INFO] [stdout] 73 | | [INFO] [stdout] ... | [INFO] [stdout] 100 | | let rooms = expose.3.children().nth(2)?.text(); [INFO] [stdout] | | ^ use `.ok_or(...)?` to provide an error compatible with `std::result::Result, errors::Error>` [INFO] [stdout] ... | [INFO] [stdout] 109 | | Ok(out) [INFO] [stdout] 110 | | } [INFO] [stdout] | |___- this function returns a `Result` [INFO] [stdout] | [INFO] [stdout] = help: the trait `FromResidual>` is not implemented for `std::result::Result, errors::Error>` [INFO] [stdout] = note: required by `from_residual` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a closure that returns `Result` [INFO] [stdout] --> src/crawlers/immoscout.rs:78:90 [INFO] [stdout] | [INFO] [stdout] 78 | ...e_urls.map(|e| -> Result { Ok(e.parent()?.attr("href")?.split("/").last()?.replace(".html", "").to_owned()) }); [INFO] [stdout] | ---------------------------------------------------^------------------------------------------------------ [INFO] [stdout] | | | [INFO] [stdout] | | use `.ok_or(...)?` to provide an error compatible with `std::result::Result` [INFO] [stdout] | this function returns a `Result` [INFO] [stdout] | [INFO] [stdout] = help: the trait `FromResidual>` is not implemented for `std::result::Result` [INFO] [stdout] = note: required by `from_residual` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result` [INFO] [stdout] --> src/crawlers/immoscout.rs:101:42 [INFO] [stdout] | [INFO] [stdout] 70 | / fn extract_data(&self, data: String) -> Result> { [INFO] [stdout] 71 | | debug!("extracting page data"); [INFO] [stdout] 72 | | let document = Document::from(data.as_str()); [INFO] [stdout] 73 | | [INFO] [stdout] ... | [INFO] [stdout] 101 | | let rooms = rooms.split(" ").nth(0)?; [INFO] [stdout] | | ^ use `.ok_or(...)?` to provide an error compatible with `std::result::Result, errors::Error>` [INFO] [stdout] ... | [INFO] [stdout] 109 | | Ok(out) [INFO] [stdout] 110 | | } [INFO] [stdout] | |___- this function returns a `Result` [INFO] [stdout] | [INFO] [stdout] = help: the trait `FromResidual>` is not implemented for `std::result::Result, errors::Error>` [INFO] [stdout] = note: required by `from_residual` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a closure that returns `Result` [INFO] [stdout] --> src/crawlers/immoscout.rs:78:109 [INFO] [stdout] | [INFO] [stdout] 78 | ...e_urls.map(|e| -> Result { Ok(e.parent()?.attr("href")?.split("/").last()?.replace(".html", "").to_owned()) }); [INFO] [stdout] | ----------------------------------------------------------------------^----------------------------------- [INFO] [stdout] | | | [INFO] [stdout] | | use `.ok_or(...)?` to provide an error compatible with `std::result::Result` [INFO] [stdout] | this function returns a `Result` [INFO] [stdout] | [INFO] [stdout] = help: the trait `FromResidual>` is not implemented for `std::result::Result` [INFO] [stdout] = note: required by `from_residual` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string() [INFO] [stdout] --> src/notifiers/mod.rs:26:66 [INFO] [stdout] | [INFO] [stdout] 26 | self.post_message(cfg, &format!("Error in Flathunter: {}", e.description()))?; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result` [INFO] [stdout] --> src/crawlers/immoscout.rs:91:45 [INFO] [stdout] | [INFO] [stdout] 70 | / fn extract_data(&self, data: String) -> Result> { [INFO] [stdout] 71 | | debug!("extracting page data"); [INFO] [stdout] 72 | | let document = Document::from(data.as_str()); [INFO] [stdout] 73 | | [INFO] [stdout] ... | [INFO] [stdout] 91 | | let price = expose.3.children().nth(0)?.text(); [INFO] [stdout] | | ^ use `.ok_or(...)?` to provide an error compatible with `std::result::Result, errors::Error>` [INFO] [stdout] ... | [INFO] [stdout] 109 | | Ok(out) [INFO] [stdout] 110 | | } [INFO] [stdout] | |___- this function returns a `Result` [INFO] [stdout] | [INFO] [stdout] = help: the trait `FromResidual>` is not implemented for `std::result::Result, errors::Error>` [INFO] [stdout] = note: required by `from_residual` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result` [INFO] [stdout] --> src/notifiers/webhook.rs:58:46 [INFO] [stdout] | [INFO] [stdout] 52 | / fn new_result(&self, cfg: &Config, res: Housing) -> Result<()> { [INFO] [stdout] 53 | | let conf = cfg.notify_conf.get(CONFIG_KEY); [INFO] [stdout] 54 | | let conf: &BTreeMap = match conf { [INFO] [stdout] 55 | | None => { return Ok(()); }, [INFO] [stdout] ... | [INFO] [stdout] 58 | | let hook_type: &String = conf.get("type")?; [INFO] [stdout] | | ^ use `.ok_or(...)?` to provide an error compatible with `std::result::Result<(), errors::Error>` [INFO] [stdout] ... | [INFO] [stdout] 99 | | Ok(()) [INFO] [stdout] 100 | | } [INFO] [stdout] | |___- this function returns a `Result` [INFO] [stdout] | [INFO] [stdout] = help: the trait `FromResidual>` is not implemented for `std::result::Result<(), errors::Error>` [INFO] [stdout] = note: required by `from_residual` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result` [INFO] [stdout] --> src/crawlers/immoscout.rs:93:49 [INFO] [stdout] | [INFO] [stdout] 70 | / fn extract_data(&self, data: String) -> Result> { [INFO] [stdout] 71 | | debug!("extracting page data"); [INFO] [stdout] 72 | | let document = Document::from(data.as_str()); [INFO] [stdout] 73 | | [INFO] [stdout] ... | [INFO] [stdout] 93 | | let price = price.trim().split(" ").nth(0)?.trim(); [INFO] [stdout] | | ^ use `.ok_or(...)?` to provide an error compatible with `std::result::Result, errors::Error>` [INFO] [stdout] ... | [INFO] [stdout] 109 | | Ok(out) [INFO] [stdout] 110 | | } [INFO] [stdout] | |___- this function returns a `Result` [INFO] [stdout] | [INFO] [stdout] = help: the trait `FromResidual>` is not implemented for `std::result::Result, errors::Error>` [INFO] [stdout] = note: required by `from_residual` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result` [INFO] [stdout] --> src/notifiers/webhook.rs:60:35 [INFO] [stdout] | [INFO] [stdout] 52 | / fn new_result(&self, cfg: &Config, res: Housing) -> Result<()> { [INFO] [stdout] 53 | | let conf = cfg.notify_conf.get(CONFIG_KEY); [INFO] [stdout] 54 | | let conf: &BTreeMap = match conf { [INFO] [stdout] 55 | | None => { return Ok(()); }, [INFO] [stdout] ... | [INFO] [stdout] 60 | | let hook_url = conf.get("url")?; [INFO] [stdout] | | ^ use `.ok_or(...)?` to provide an error compatible with `std::result::Result<(), errors::Error>` [INFO] [stdout] ... | [INFO] [stdout] 99 | | Ok(()) [INFO] [stdout] 100 | | } [INFO] [stdout] | |___- this function returns a `Result` [INFO] [stdout] | [INFO] [stdout] = help: the trait `FromResidual>` is not implemented for `std::result::Result<(), errors::Error>` [INFO] [stdout] = note: required by `from_residual` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result` [INFO] [stdout] --> src/crawlers/immoscout.rs:96:44 [INFO] [stdout] | [INFO] [stdout] 70 | / fn extract_data(&self, data: String) -> Result> { [INFO] [stdout] 71 | | debug!("extracting page data"); [INFO] [stdout] 72 | | let document = Document::from(data.as_str()); [INFO] [stdout] 73 | | [INFO] [stdout] ... | [INFO] [stdout] 96 | | let size = expose.3.children().nth(1)?.text(); [INFO] [stdout] | | ^ use `.ok_or(...)?` to provide an error compatible with `std::result::Result, errors::Error>` [INFO] [stdout] ... | [INFO] [stdout] 109 | | Ok(out) [INFO] [stdout] 110 | | } [INFO] [stdout] | |___- this function returns a `Result` [INFO] [stdout] | [INFO] [stdout] = help: the trait `FromResidual>` is not implemented for `std::result::Result, errors::Error>` [INFO] [stdout] = note: required by `from_residual` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result` [INFO] [stdout] --> src/crawlers/immoscout.rs:98:47 [INFO] [stdout] | [INFO] [stdout] 70 | / fn extract_data(&self, data: String) -> Result> { [INFO] [stdout] 71 | | debug!("extracting page data"); [INFO] [stdout] 72 | | let document = Document::from(data.as_str()); [INFO] [stdout] 73 | | [INFO] [stdout] ... | [INFO] [stdout] 98 | | let size = size.trim().split(" ").nth(0)?.trim().replace(",", "."); [INFO] [stdout] | | ^ use `.ok_or(...)?` to provide an error compatible with `std::result::Result, errors::Error>` [INFO] [stdout] ... | [INFO] [stdout] 109 | | Ok(out) [INFO] [stdout] 110 | | } [INFO] [stdout] | |___- this function returns a `Result` [INFO] [stdout] | [INFO] [stdout] = help: the trait `FromResidual>` is not implemented for `std::result::Result, errors::Error>` [INFO] [stdout] = note: required by `from_residual` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result` [INFO] [stdout] --> src/notifiers/webhook.rs:107:46 [INFO] [stdout] | [INFO] [stdout] 101 | / fn post_message(&self, cfg: &Config, msg: &str) -> Result<()> { [INFO] [stdout] 102 | | let conf = cfg.notify_conf.get(CONFIG_KEY); [INFO] [stdout] 103 | | let conf: &BTreeMap = match conf { [INFO] [stdout] 104 | | None => { return Ok(()); }, [INFO] [stdout] ... | [INFO] [stdout] 107 | | let hook_type: &String = conf.get("type")?; [INFO] [stdout] | | ^ use `.ok_or(...)?` to provide an error compatible with `std::result::Result<(), errors::Error>` [INFO] [stdout] ... | [INFO] [stdout] 131 | | Ok(()) [INFO] [stdout] 132 | | } [INFO] [stdout] | |___- this function returns a `Result` [INFO] [stdout] | [INFO] [stdout] = help: the trait `FromResidual>` is not implemented for `std::result::Result<(), errors::Error>` [INFO] [stdout] = note: required by `from_residual` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result` [INFO] [stdout] --> src/crawlers/immoscout.rs:100:45 [INFO] [stdout] | [INFO] [stdout] 70 | / fn extract_data(&self, data: String) -> Result> { [INFO] [stdout] 71 | | debug!("extracting page data"); [INFO] [stdout] 72 | | let document = Document::from(data.as_str()); [INFO] [stdout] 73 | | [INFO] [stdout] ... | [INFO] [stdout] 100 | | let rooms = expose.3.children().nth(2)?.text(); [INFO] [stdout] | | ^ use `.ok_or(...)?` to provide an error compatible with `std::result::Result, errors::Error>` [INFO] [stdout] ... | [INFO] [stdout] 109 | | Ok(out) [INFO] [stdout] 110 | | } [INFO] [stdout] | |___- this function returns a `Result` [INFO] [stdout] | [INFO] [stdout] = help: the trait `FromResidual>` is not implemented for `std::result::Result, errors::Error>` [INFO] [stdout] = note: required by `from_residual` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result` [INFO] [stdout] --> src/notifiers/webhook.rs:109:35 [INFO] [stdout] | [INFO] [stdout] 101 | / fn post_message(&self, cfg: &Config, msg: &str) -> Result<()> { [INFO] [stdout] 102 | | let conf = cfg.notify_conf.get(CONFIG_KEY); [INFO] [stdout] 103 | | let conf: &BTreeMap = match conf { [INFO] [stdout] 104 | | None => { return Ok(()); }, [INFO] [stdout] ... | [INFO] [stdout] 109 | | let hook_url = conf.get("url")?; [INFO] [stdout] | | ^ use `.ok_or(...)?` to provide an error compatible with `std::result::Result<(), errors::Error>` [INFO] [stdout] ... | [INFO] [stdout] 131 | | Ok(()) [INFO] [stdout] 132 | | } [INFO] [stdout] | |___- this function returns a `Result` [INFO] [stdout] | [INFO] [stdout] = help: the trait `FromResidual>` is not implemented for `std::result::Result<(), errors::Error>` [INFO] [stdout] = note: required by `from_residual` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result` [INFO] [stdout] --> src/crawlers/immoscout.rs:101:42 [INFO] [stdout] | [INFO] [stdout] 70 | / fn extract_data(&self, data: String) -> Result> { [INFO] [stdout] 71 | | debug!("extracting page data"); [INFO] [stdout] 72 | | let document = Document::from(data.as_str()); [INFO] [stdout] 73 | | [INFO] [stdout] ... | [INFO] [stdout] 101 | | let rooms = rooms.split(" ").nth(0)?; [INFO] [stdout] | | ^ use `.ok_or(...)?` to provide an error compatible with `std::result::Result, errors::Error>` [INFO] [stdout] ... | [INFO] [stdout] 109 | | Ok(out) [INFO] [stdout] 110 | | } [INFO] [stdout] | |___- this function returns a `Result` [INFO] [stdout] | [INFO] [stdout] = help: the trait `FromResidual>` is not implemented for `std::result::Result, errors::Error>` [INFO] [stdout] = note: required by `from_residual` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated associated function `std::error::Error::description`: use the Display impl or to_string() [INFO] [stdout] --> src/notifiers/mod.rs:26:66 [INFO] [stdout] | [INFO] [stdout] 26 | self.post_message(cfg, &format!("Error in Flathunter: {}", e.description()))?; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result` [INFO] [stdout] --> src/notifiers/webhook.rs:58:46 [INFO] [stdout] | [INFO] [stdout] 52 | / fn new_result(&self, cfg: &Config, res: Housing) -> Result<()> { [INFO] [stdout] 53 | | let conf = cfg.notify_conf.get(CONFIG_KEY); [INFO] [stdout] 54 | | let conf: &BTreeMap = match conf { [INFO] [stdout] 55 | | None => { return Ok(()); }, [INFO] [stdout] ... | [INFO] [stdout] 58 | | let hook_type: &String = conf.get("type")?; [INFO] [stdout] | | ^ use `.ok_or(...)?` to provide an error compatible with `std::result::Result<(), errors::Error>` [INFO] [stdout] ... | [INFO] [stdout] 99 | | Ok(()) [INFO] [stdout] 100 | | } [INFO] [stdout] | |___- this function returns a `Result` [INFO] [stdout] | [INFO] [stdout] = help: the trait `FromResidual>` is not implemented for `std::result::Result<(), errors::Error>` [INFO] [stdout] = note: required by `from_residual` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result` [INFO] [stdout] --> src/notifiers/webhook.rs:60:35 [INFO] [stdout] | [INFO] [stdout] 52 | / fn new_result(&self, cfg: &Config, res: Housing) -> Result<()> { [INFO] [stdout] 53 | | let conf = cfg.notify_conf.get(CONFIG_KEY); [INFO] [stdout] 54 | | let conf: &BTreeMap = match conf { [INFO] [stdout] 55 | | None => { return Ok(()); }, [INFO] [stdout] ... | [INFO] [stdout] 60 | | let hook_url = conf.get("url")?; [INFO] [stdout] | | ^ use `.ok_or(...)?` to provide an error compatible with `std::result::Result<(), errors::Error>` [INFO] [stdout] ... | [INFO] [stdout] 99 | | Ok(()) [INFO] [stdout] 100 | | } [INFO] [stdout] | |___- this function returns a `Result` [INFO] [stdout] | [INFO] [stdout] = help: the trait `FromResidual>` is not implemented for `std::result::Result<(), errors::Error>` [INFO] [stdout] = note: required by `from_residual` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result` [INFO] [stdout] --> src/notifiers/webhook.rs:107:46 [INFO] [stdout] | [INFO] [stdout] 101 | / fn post_message(&self, cfg: &Config, msg: &str) -> Result<()> { [INFO] [stdout] 102 | | let conf = cfg.notify_conf.get(CONFIG_KEY); [INFO] [stdout] 103 | | let conf: &BTreeMap = match conf { [INFO] [stdout] 104 | | None => { return Ok(()); }, [INFO] [stdout] ... | [INFO] [stdout] 107 | | let hook_type: &String = conf.get("type")?; [INFO] [stdout] | | ^ use `.ok_or(...)?` to provide an error compatible with `std::result::Result<(), errors::Error>` [INFO] [stdout] ... | [INFO] [stdout] 131 | | Ok(()) [INFO] [stdout] 132 | | } [INFO] [stdout] | |___- this function returns a `Result` [INFO] [stdout] | [INFO] [stdout] = help: the trait `FromResidual>` is not implemented for `std::result::Result<(), errors::Error>` [INFO] [stdout] = note: required by `from_residual` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in a method that returns `Result` [INFO] [stdout] --> src/notifiers/webhook.rs:109:35 [INFO] [stdout] | [INFO] [stdout] 101 | / fn post_message(&self, cfg: &Config, msg: &str) -> Result<()> { [INFO] [stdout] 102 | | let conf = cfg.notify_conf.get(CONFIG_KEY); [INFO] [stdout] 103 | | let conf: &BTreeMap = match conf { [INFO] [stdout] 104 | | None => { return Ok(()); }, [INFO] [stdout] ... | [INFO] [stdout] 109 | | let hook_url = conf.get("url")?; [INFO] [stdout] | | ^ use `.ok_or(...)?` to provide an error compatible with `std::result::Result<(), errors::Error>` [INFO] [stdout] ... | [INFO] [stdout] 131 | | Ok(()) [INFO] [stdout] 132 | | } [INFO] [stdout] | |___- this function returns a `Result` [INFO] [stdout] | [INFO] [stdout] = help: the trait `FromResidual>` is not implemented for `std::result::Result<(), errors::Error>` [INFO] [stdout] = note: required by `from_residual` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error: aborting due to 21 previous errors; 5 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0277, E0412. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0277`. [INFO] [stdout] [INFO] [stderr] error: could not compile `flathunter-rs` [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stdout] error: aborting due to 21 previous errors; 5 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Some errors have detailed explanations: E0277, E0412. [INFO] [stdout] [INFO] [stdout] For more information about an error, try `rustc --explain E0277`. [INFO] [stdout] [INFO] [stderr] error: build failed [INFO] running `Command { std: "docker" "inspect" "8b787b26620964fc792d8ddfb7e0cdaa71555e5f0b173bc572e577382561b6a9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8b787b26620964fc792d8ddfb7e0cdaa71555e5f0b173bc572e577382561b6a9", kill_on_drop: false }` [INFO] [stdout] 8b787b26620964fc792d8ddfb7e0cdaa71555e5f0b173bc572e577382561b6a9