[INFO] cloning repository https://github.com/clearloop/leetcode-cli
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/clearloop/leetcode-cli" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fclearloop%2Fleetcode-cli", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fclearloop%2Fleetcode-cli'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] b315dd436b7a99784b63159157adfdbd8107b856
[INFO] testing clearloop/leetcode-cli against beta-2021-08-01 for beta-1.55-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fclearloop%2Fleetcode-cli" "/workspace/builds/worker-8/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-8/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/clearloop/leetcode-cli on toolchain beta-2021-08-01
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2021-08-01" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] removed /workspace/builds/worker-8/source/rust-toolchain
[INFO] started tweaking git repo https://github.com/clearloop/leetcode-cli
[INFO] finished tweaking git repo https://github.com/clearloop/leetcode-cli
[INFO] tweaked toml for git repo https://github.com/clearloop/leetcode-cli written to /workspace/builds/worker-8/source/Cargo.toml
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2021-08-01" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }`
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2021-08-01" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded dbus v0.2.3
[INFO] [stderr]   Downloaded escaper v0.1.1
[INFO] [stderr]   Downloaded keyring v0.8.0
[INFO] [stderr]   Downloaded secret-service v1.1.3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/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" "+beta-2021-08-01" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] ca8f3d8bc12e2c4568e9b4463ffff56c3e701144bc6d62665b52928ab479b1af
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "ca8f3d8bc12e2c4568e9b4463ffff56c3e701144bc6d62665b52928ab479b1af", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ca8f3d8bc12e2c4568e9b4463ffff56c3e701144bc6d62665b52928ab479b1af", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ca8f3d8bc12e2c4568e9b4463ffff56c3e701144bc6d62665b52928ab479b1af", kill_on_drop: false }`
[INFO] [stdout] ca8f3d8bc12e2c4568e9b4463ffff56c3e701144bc6d62665b52928ab479b1af
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-8/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "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" "+beta-2021-08-01" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] [stdout] f9b1dbe944f4f47804c3e5f3f38e8acacf0f719d6649e99d7033a81fb7a38e98
[INFO] running `Command { std: "docker" "start" "-a" "f9b1dbe944f4f47804c3e5f3f38e8acacf0f719d6649e99d7033a81fb7a38e98", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.98
[INFO] [stderr]    Compiling syn v1.0.74
[INFO] [stderr]    Compiling cc v1.0.69
[INFO] [stderr]    Compiling slab v0.4.4
[INFO] [stderr]    Compiling futures-task v0.3.16
[INFO] [stderr]    Compiling subtle v2.4.1
[INFO] [stderr]    Compiling futures-sink v0.3.16
[INFO] [stderr]    Compiling futures-channel v0.3.16
[INFO] [stderr]    Compiling cpufeatures v0.1.5
[INFO] [stderr]    Compiling num-traits v0.2.14
[INFO] [stderr]    Compiling indexmap v1.7.0
[INFO] [stderr]    Compiling futures-util v0.3.16
[INFO] [stderr]    Compiling libsqlite3-sys v0.22.2
[INFO] [stderr]    Compiling tinyvec v1.3.1
[INFO] [stderr]    Compiling escaper v0.1.1
[INFO] [stderr]    Compiling tracing v0.1.26
[INFO] [stderr]    Compiling aho-corasick v0.7.18
[INFO] [stderr]    Compiling block-buffer v0.9.0
[INFO] [stderr]    Compiling crypto-mac v0.10.1
[INFO] [stderr]    Compiling mime_guess v2.0.3
[INFO] [stderr]    Compiling aes-soft v0.6.4
[INFO] [stderr]    Compiling block-modes v0.7.0
[INFO] [stderr]    Compiling sha2 v0.9.5
[INFO] [stderr]    Compiling hmac v0.10.1
[INFO] [stderr]    Compiling aes v0.6.0
[INFO] [stderr]    Compiling hkdf v0.10.0
[INFO] [stderr]    Compiling openssl-sys v0.9.65
[INFO] [stderr]    Compiling unicode-normalization v0.1.19
[INFO] [stderr]    Compiling regex v1.5.4
[INFO] [stderr]    Compiling num-integer v0.1.44
[INFO] [stderr]    Compiling num-complex v0.3.1
[INFO] [stderr]    Compiling iovec v0.1.4
[INFO] [stderr]    Compiling net2 v0.2.37
[INFO] [stderr]    Compiling getrandom v0.1.16
[INFO] [stderr]    Compiling socket2 v0.3.19
[INFO] [stderr]    Compiling atty v0.2.14
[INFO] [stderr]    Compiling dbus v0.2.3
[INFO] [stderr]    Compiling flate2 v1.0.20
[INFO] [stderr]    Compiling dirs-sys v0.3.6
[INFO] [stderr]    Compiling nix v0.17.0
[INFO] [stderr]    Compiling openssl v0.10.35
[INFO] [stderr]    Compiling native-tls v0.2.7
[INFO] [stderr]    Compiling colored v1.9.3
[INFO] [stderr]    Compiling clap v2.33.3
[INFO] [stderr]    Compiling num-bigint v0.3.2
[INFO] [stderr]    Compiling num-iter v0.1.42
[INFO] [stderr]    Compiling mio v0.6.23
[INFO] [stderr]    Compiling dirs v2.0.2
[INFO] [stderr]    Compiling idna v0.2.3
[INFO] [stderr]    Compiling rand_core v0.5.1
[INFO] [stderr]    Compiling async-compression v0.3.8
[INFO] [stderr]    Compiling env_logger v0.7.1
[INFO] [stderr]    Compiling rand_chacha v0.2.2
[INFO] [stderr]    Compiling url v2.2.2
[INFO] [stderr]    Compiling rand v0.7.3
[INFO] [stderr]    Compiling tokio v0.2.25
[INFO] [stderr]    Compiling num-rational v0.3.2
[INFO] [stderr]    Compiling num v0.3.1
[INFO] [stderr]    Compiling secret-service v1.1.3
[INFO] [stderr]    Compiling keyring v0.8.0
[INFO] [stderr]    Compiling pin-project-internal v1.0.8
[INFO] [stderr]    Compiling serde_derive v1.0.127
[INFO] [stderr]    Compiling diesel_derives v1.4.1
[INFO] [stderr]    Compiling async-trait v0.1.51
[INFO] [stderr]    Compiling tokio-util v0.3.1
[INFO] [stderr]    Compiling tokio-tls v0.3.1
[INFO] [stderr]    Compiling pin-project v1.0.8
[INFO] [stderr]    Compiling tracing-futures v0.2.5
[INFO] [stderr]    Compiling h2 v0.2.7
[INFO] [stderr]    Compiling serde v1.0.127
[INFO] [stderr]    Compiling diesel v1.4.7
[INFO] [stderr]    Compiling hyper v0.13.10
[INFO] [stderr]    Compiling serde_json v1.0.66
[INFO] [stderr]    Compiling serde_urlencoded v0.7.0
[INFO] [stderr]    Compiling toml v0.5.8
[INFO] [stderr]    Compiling hyper-tls v0.4.3
[INFO] [stderr]    Compiling reqwest v0.10.10
[INFO] [stderr]    Compiling leetcode-cli v0.3.9 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0412]: cannot find type `NoneError` in module `std::option`
[INFO] [stdout]    --> src/err.rs:118:38
[INFO] [stdout]     |
[INFO] [stdout] 118 | impl std::convert::From<std::option::NoneError> for Error {
[INFO] [stdout]     |                                      ^^^^^^^^^ not found in `std::option`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `NoneError` in module `std::option`
[INFO] [stdout]    --> src/err.rs:119:29
[INFO] [stdout]     |
[INFO] [stdout] 119 |     fn from(_: std::option::NoneError) -> Self {
[INFO] [stdout]     |                             ^^^^^^^^^ not found in `std::option`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0554]: `#![feature]` may not be used on the beta release channel
[INFO] [stdout]    --> src/lib.rs:244:1
[INFO] [stdout]     |
[INFO] [stdout] 244 | #![feature(try_trait)]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the `?` operator can only be used on `Result`s, not `Option`s, in an async function that returns `Result`
[INFO] [stdout]    --> src/plugins/leetcode.rs:75:29
[INFO] [stdout]     |
[INFO] [stdout] 69  |       pub async fn get_category_problems(self, category: &str) -> Result<Response, Error> {
[INFO] [stdout]     |  _________________________________________________________________________________________-
[INFO] [stdout] 70  | |         trace!("Requesting {} problems...", &category);
[INFO] [stdout] 71  | |         let url = &self
[INFO] [stdout] 72  | |             .conf
[INFO] [stdout] ...   |
[INFO] [stdout] 75  | |             .get("problems")?
[INFO] [stdout]     | |                             ^ use `.ok_or(...)?` to provide an error compatible with `Result<Response, err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 88  | |         .await
[INFO] [stdout] 89  | |     }
[INFO] [stdout]     | |_____- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<Response, err::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 an async function that returns `Result`
[INFO] [stdout]    --> src/plugins/leetcode.rs:127:55
[INFO] [stdout]     |
[INFO] [stdout] 125 |       pub async fn get_question_detail(self, slug: &str) -> Result<Response, Error> {
[INFO] [stdout]     |  ___________________________________________________________________________________-
[INFO] [stdout] 126 | |         trace!("Requesting {} detail...", &slug);
[INFO] [stdout] 127 | |         let refer = self.conf.sys.urls.get("problems")?.replace("$slug", slug);
[INFO] [stdout]     | |                                                       ^ use `.ok_or(...)?` to provide an error compatible with `Result<Response, err::Error>`
[INFO] [stdout] 128 | |         let mut json: Json = HashMap::new();
[INFO] [stdout] ...   |
[INFO] [stdout] 165 | |         .await
[INFO] [stdout] 166 | |     }
[INFO] [stdout]     | |_____- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<Response, err::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 an async function that returns `Result`
[INFO] [stdout]    --> src/plugins/leetcode.rs:93:53
[INFO] [stdout]     |
[INFO] [stdout] 91  |       pub async fn get_question_ids_by_tag(self, slug: &str) -> Result<Response, Error> {
[INFO] [stdout]     |  _______________________________________________________________________________________-
[INFO] [stdout] 92  | |         trace!("Requesting {} ref problems...", &slug);
[INFO] [stdout] 93  | |         let url = &self.conf.sys.urls.get("graphql")?;
[INFO] [stdout]     | |                                                     ^ use `.ok_or(...)?` to provide an error compatible with `Result<Response, err::Error>`
[INFO] [stdout] 94  | |         let mut json: Json = HashMap::new();
[INFO] [stdout] ...   |
[INFO] [stdout] 121 | |         .await
[INFO] [stdout] 122 | |     }
[INFO] [stdout]     | |_____- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<Response, err::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 an async function that returns `Result`
[INFO] [stdout]    --> src/plugins/leetcode.rs:113:56
[INFO] [stdout]     |
[INFO] [stdout] 91  |       pub async fn get_question_ids_by_tag(self, slug: &str) -> Result<Response, Error> {
[INFO] [stdout]     |  _______________________________________________________________________________________-
[INFO] [stdout] 92  | |         trace!("Requesting {} ref problems...", &slug);
[INFO] [stdout] 93  | |         let url = &self.conf.sys.urls.get("graphql")?;
[INFO] [stdout] 94  | |         let mut json: Json = HashMap::new();
[INFO] [stdout] ...   |
[INFO] [stdout] 113 | |             refer: Some((&self.conf.sys.urls.get("tag")?).replace("$slug", slug)),
[INFO] [stdout]     | |                                                        ^ use `.ok_or(...)?` to provide an error compatible with `Result<Response, err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 121 | |         .await
[INFO] [stdout] 122 | |     }
[INFO] [stdout]     | |_____- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<Response, err::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 an async function that returns `Result`
[INFO] [stdout]    --> src/cache/mod.rs:238:51
[INFO] [stdout]     |
[INFO] [stdout] 191 |       ) -> Result<(HashMap<&'static str, String>, [String; 2]), Error> {
[INFO] [stdout]     |  ______________________________________________________________________-
[INFO] [stdout] 192 | |         trace!("pre run code...");
[INFO] [stdout] 193 | |         use crate::helper::{code_path, test_cases_path};
[INFO] [stdout] 194 | |         use std::fs::File;
[INFO] [stdout] ...   |
[INFO] [stdout] 238 | |             Run::Test => conf.sys.urls.get("test")?.replace("$slug", &p.slug),
[INFO] [stdout]     | |                                                   ^ use `.ok_or(...)?` to provide an error compatible with `Result<(HashMap<&str, std::string::String>, [std::string::String; 2]), err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 251 | |         ))
[INFO] [stdout] 252 | |     }
[INFO] [stdout]     | |_____- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(HashMap<&str, std::string::String>, [std::string::String; 2]), err::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 an async function that returns `Result`
[INFO] [stdout]    --> src/cache/mod.rs:241:44
[INFO] [stdout]     |
[INFO] [stdout] 191 |       ) -> Result<(HashMap<&'static str, String>, [String; 2]), Error> {
[INFO] [stdout]     |  ______________________________________________________________________-
[INFO] [stdout] 192 | |         trace!("pre run code...");
[INFO] [stdout] 193 | |         use crate::helper::{code_path, test_cases_path};
[INFO] [stdout] 194 | |         use std::fs::File;
[INFO] [stdout] ...   |
[INFO] [stdout] 241 | |                 conf.sys.urls.get("submit")?.replace("$slug", &p.slug)
[INFO] [stdout]     | |                                            ^ use `.ok_or(...)?` to provide an error compatible with `Result<(HashMap<&str, std::string::String>, [std::string::String; 2]), err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 251 | |         ))
[INFO] [stdout] 252 | |     }
[INFO] [stdout]     | |_____- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(HashMap<&str, std::string::String>, [std::string::String; 2]), err::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 an async function that returns `Result`
[INFO] [stdout]    --> src/cache/mod.rs:249:46
[INFO] [stdout]     |
[INFO] [stdout] 191 |       ) -> Result<(HashMap<&'static str, String>, [String; 2]), Error> {
[INFO] [stdout]     |  ______________________________________________________________________-
[INFO] [stdout] 192 | |         trace!("pre run code...");
[INFO] [stdout] 193 | |         use crate::helper::{code_path, test_cases_path};
[INFO] [stdout] 194 | |         use std::fs::File;
[INFO] [stdout] ...   |
[INFO] [stdout] 249 | |                 conf.sys.urls.get("problems")?.replace("$slug", &p.slug),
[INFO] [stdout]     | |                                              ^ use `.ok_or(...)?` to provide an error compatible with `Result<(HashMap<&str, std::string::String>, [std::string::String; 2]), err::Error>`
[INFO] [stdout] 250 | |             ],
[INFO] [stdout] 251 | |         ))
[INFO] [stdout] 252 | |     }
[INFO] [stdout]     | |_____- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(HashMap<&str, std::string::String>, [std::string::String; 2]), err::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 an async function that returns `Result`
[INFO] [stdout]    --> src/plugins/leetcode.rs:187:51
[INFO] [stdout]     |
[INFO] [stdout] 185 |       pub async fn verify_result(self, id: String) -> Result<Response, Error> {
[INFO] [stdout]     |  _____________________________________________________________________________-
[INFO] [stdout] 186 | |         trace!("Verifying result...");
[INFO] [stdout] 187 | |         let url = self.conf.sys.urls.get("verify")?.replace("$id", &id);
[INFO] [stdout]     | |                                                   ^ use `.ok_or(...)?` to provide an error compatible with `Result<Response, err::Error>`
[INFO] [stdout] 188 | |         Req {
[INFO] [stdout] ...   |
[INFO] [stdout] 198 | |         .await
[INFO] [stdout] 199 | |     }
[INFO] [stdout]     | |_____- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<Response, err::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 an async function that returns `Result`
[INFO] [stdout]    --> src/cache/mod.rs:311:36
[INFO] [stdout]     |
[INFO] [stdout] 288 |       ) -> Result<VerifyResult, Error> {
[INFO] [stdout]     |  ______________________________________-
[INFO] [stdout] 289 | |         trace!("Exec problem filter —— Test or Submit");
[INFO] [stdout] 290 | |         let (json, [url, refer]) = self.pre_run_code(run.clone(), rfid, testcase).await?;
[INFO] [stdout] 291 | |         trace!("Pre run code result {:?}, {:?}, {:?}", json, url, refer);
[INFO] [stdout] ...   |
[INFO] [stdout] 311 | |         res.name = json.get("name")?.to_string();
[INFO] [stdout]     | |                                    ^ use `.ok_or(...)?` to provide an error compatible with `Result<models::VerifyResult, err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 314 | |         Ok(res)
[INFO] [stdout] 315 | |     }
[INFO] [stdout]     | |_____- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<models::VerifyResult, err::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 an async function that returns `Result`
[INFO] [stdout]    --> src/cache/mod.rs:312:48
[INFO] [stdout]     |
[INFO] [stdout] 288 |       ) -> Result<VerifyResult, Error> {
[INFO] [stdout]     |  ______________________________________-
[INFO] [stdout] 289 | |         trace!("Exec problem filter —— Test or Submit");
[INFO] [stdout] 290 | |         let (json, [url, refer]) = self.pre_run_code(run.clone(), rfid, testcase).await?;
[INFO] [stdout] 291 | |         trace!("Pre run code result {:?}, {:?}, {:?}", json, url, refer);
[INFO] [stdout] ...   |
[INFO] [stdout] 312 | |         res.data_input = json.get("data_input")?.to_string();
[INFO] [stdout]     | |                                                ^ use `.ok_or(...)?` to provide an error compatible with `Result<models::VerifyResult, err::Error>`
[INFO] [stdout] 313 | |         res.result_type = run;
[INFO] [stdout] 314 | |         Ok(res)
[INFO] [stdout] 315 | |     }
[INFO] [stdout]     | |_____- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<models::VerifyResult, err::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 function that returns `Result`
[INFO] [stdout]    --> src/cache/parser.rs:8:43
[INFO] [stdout]     |
[INFO] [stdout] 7   | / pub fn problem(problems: &mut Vec<Problem>, v: Value) -> Result<(), Error> {
[INFO] [stdout] 8   | |     let pairs = v.get("stat_status_pairs")?.as_array()?;
[INFO] [stdout]     | |                                           ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), err::Error>`
[INFO] [stdout] 9   | |     for p in pairs {
[INFO] [stdout] 10  | |         let stat = p.get("stat")?.as_object()?;
[INFO] [stdout] ...   |
[INFO] [stdout] 29  | |     Ok(())
[INFO] [stdout] 30  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(), err::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 function that returns `Result`
[INFO] [stdout]    --> src/cache/parser.rs:8:55
[INFO] [stdout]     |
[INFO] [stdout] 7   | / pub fn problem(problems: &mut Vec<Problem>, v: Value) -> Result<(), Error> {
[INFO] [stdout] 8   | |     let pairs = v.get("stat_status_pairs")?.as_array()?;
[INFO] [stdout]     | |                                                       ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), err::Error>`
[INFO] [stdout] 9   | |     for p in pairs {
[INFO] [stdout] 10  | |         let stat = p.get("stat")?.as_object()?;
[INFO] [stdout] ...   |
[INFO] [stdout] 29  | |     Ok(())
[INFO] [stdout] 30  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(), err::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 function that returns `Result`
[INFO] [stdout]    --> src/cache/parser.rs:10:33
[INFO] [stdout]     |
[INFO] [stdout] 7   | / pub fn problem(problems: &mut Vec<Problem>, v: Value) -> Result<(), Error> {
[INFO] [stdout] 8   | |     let pairs = v.get("stat_status_pairs")?.as_array()?;
[INFO] [stdout] 9   | |     for p in pairs {
[INFO] [stdout] 10  | |         let stat = p.get("stat")?.as_object()?;
[INFO] [stdout]     | |                                 ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 29  | |     Ok(())
[INFO] [stdout] 30  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(), err::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 function that returns `Result`
[INFO] [stdout]    --> src/cache/parser.rs:10:46
[INFO] [stdout]     |
[INFO] [stdout] 7   | / pub fn problem(problems: &mut Vec<Problem>, v: Value) -> Result<(), Error> {
[INFO] [stdout] 8   | |     let pairs = v.get("stat_status_pairs")?.as_array()?;
[INFO] [stdout] 9   | |     for p in pairs {
[INFO] [stdout] 10  | |         let stat = p.get("stat")?.as_object()?;
[INFO] [stdout]     | |                                              ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 29  | |     Ok(())
[INFO] [stdout] 30  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(), err::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 function that returns `Result`
[INFO] [stdout]    --> src/cache/parser.rs:11:46
[INFO] [stdout]     |
[INFO] [stdout] 7   | / pub fn problem(problems: &mut Vec<Problem>, v: Value) -> Result<(), Error> {
[INFO] [stdout] 8   | |     let pairs = v.get("stat_status_pairs")?.as_array()?;
[INFO] [stdout] 9   | |     for p in pairs {
[INFO] [stdout] 10  | |         let stat = p.get("stat")?.as_object()?;
[INFO] [stdout] 11  | |         let total_acs = stat.get("total_acs")?.as_f64()? as f32;
[INFO] [stdout]     | |                                              ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 29  | |     Ok(())
[INFO] [stdout] 30  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(), err::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 function that returns `Result`
[INFO] [stdout]    --> src/cache/parser.rs:11:56
[INFO] [stdout]     |
[INFO] [stdout] 7   | / pub fn problem(problems: &mut Vec<Problem>, v: Value) -> Result<(), Error> {
[INFO] [stdout] 8   | |     let pairs = v.get("stat_status_pairs")?.as_array()?;
[INFO] [stdout] 9   | |     for p in pairs {
[INFO] [stdout] 10  | |         let stat = p.get("stat")?.as_object()?;
[INFO] [stdout] 11  | |         let total_acs = stat.get("total_acs")?.as_f64()? as f32;
[INFO] [stdout]     | |                                                        ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 29  | |     Ok(())
[INFO] [stdout] 30  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(), err::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 function that returns `Result`
[INFO] [stdout]    --> src/cache/parser.rs:12:58
[INFO] [stdout]     |
[INFO] [stdout] 7   | / pub fn problem(problems: &mut Vec<Problem>, v: Value) -> Result<(), Error> {
[INFO] [stdout] 8   | |     let pairs = v.get("stat_status_pairs")?.as_array()?;
[INFO] [stdout] 9   | |     for p in pairs {
[INFO] [stdout] 10  | |         let stat = p.get("stat")?.as_object()?;
[INFO] [stdout] 11  | |         let total_acs = stat.get("total_acs")?.as_f64()? as f32;
[INFO] [stdout] 12  | |         let total_submitted = stat.get("total_submitted")?.as_f64()? as f32;
[INFO] [stdout]     | |                                                          ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 29  | |     Ok(())
[INFO] [stdout] 30  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(), err::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 function that returns `Result`
[INFO] [stdout]    --> src/cache/parser.rs:12:68
[INFO] [stdout]     |
[INFO] [stdout] 7   | / pub fn problem(problems: &mut Vec<Problem>, v: Value) -> Result<(), Error> {
[INFO] [stdout] 8   | |     let pairs = v.get("stat_status_pairs")?.as_array()?;
[INFO] [stdout] 9   | |     for p in pairs {
[INFO] [stdout] 10  | |         let stat = p.get("stat")?.as_object()?;
[INFO] [stdout] 11  | |         let total_acs = stat.get("total_acs")?.as_f64()? as f32;
[INFO] [stdout] 12  | |         let total_submitted = stat.get("total_submitted")?.as_f64()? as f32;
[INFO] [stdout]     | |                                                                    ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 29  | |     Ok(())
[INFO] [stdout] 30  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(), err::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 function that returns `Result`
[INFO] [stdout]    --> src/cache/parser.rs:15:45
[INFO] [stdout]     |
[INFO] [stdout] 7   | / pub fn problem(problems: &mut Vec<Problem>, v: Value) -> Result<(), Error> {
[INFO] [stdout] 8   | |     let pairs = v.get("stat_status_pairs")?.as_array()?;
[INFO] [stdout] 9   | |     for p in pairs {
[INFO] [stdout] 10  | |         let stat = p.get("stat")?.as_object()?;
[INFO] [stdout] ...   |
[INFO] [stdout] 15  | |             category: v.get("category_slug")?.as_str()?.to_string(),
[INFO] [stdout]     | |                                             ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 29  | |     Ok(())
[INFO] [stdout] 30  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(), err::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 function that returns `Result`
[INFO] [stdout]    --> src/cache/parser.rs:15:55
[INFO] [stdout]     |
[INFO] [stdout] 7   | / pub fn problem(problems: &mut Vec<Problem>, v: Value) -> Result<(), Error> {
[INFO] [stdout] 8   | |     let pairs = v.get("stat_status_pairs")?.as_array()?;
[INFO] [stdout] 9   | |     for p in pairs {
[INFO] [stdout] 10  | |         let stat = p.get("stat")?.as_object()?;
[INFO] [stdout] ...   |
[INFO] [stdout] 15  | |             category: v.get("category_slug")?.as_str()?.to_string(),
[INFO] [stdout]     | |                                                       ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 29  | |     Ok(())
[INFO] [stdout] 30  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(), err::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 function that returns `Result`
[INFO] [stdout]    --> src/cache/parser.rs:16:50
[INFO] [stdout]     |
[INFO] [stdout] 7   | / pub fn problem(problems: &mut Vec<Problem>, v: Value) -> Result<(), Error> {
[INFO] [stdout] 8   | |     let pairs = v.get("stat_status_pairs")?.as_array()?;
[INFO] [stdout] 9   | |     for p in pairs {
[INFO] [stdout] 10  | |         let stat = p.get("stat")?.as_object()?;
[INFO] [stdout] ...   |
[INFO] [stdout] 16  | |             fid: stat.get("frontend_question_id")?.as_i64()? as i32,
[INFO] [stdout]     | |                                                  ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 29  | |     Ok(())
[INFO] [stdout] 30  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(), err::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 function that returns `Result`
[INFO] [stdout]    --> src/cache/parser.rs:16:60
[INFO] [stdout]     |
[INFO] [stdout] 7   | / pub fn problem(problems: &mut Vec<Problem>, v: Value) -> Result<(), Error> {
[INFO] [stdout] 8   | |     let pairs = v.get("stat_status_pairs")?.as_array()?;
[INFO] [stdout] 9   | |     for p in pairs {
[INFO] [stdout] 10  | |         let stat = p.get("stat")?.as_object()?;
[INFO] [stdout] ...   |
[INFO] [stdout] 16  | |             fid: stat.get("frontend_question_id")?.as_i64()? as i32,
[INFO] [stdout]     | |                                                            ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 29  | |     Ok(())
[INFO] [stdout] 30  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(), err::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 function that returns `Result`
[INFO] [stdout]    --> src/cache/parser.rs:17:40
[INFO] [stdout]     |
[INFO] [stdout] 7   | / pub fn problem(problems: &mut Vec<Problem>, v: Value) -> Result<(), Error> {
[INFO] [stdout] 8   | |     let pairs = v.get("stat_status_pairs")?.as_array()?;
[INFO] [stdout] 9   | |     for p in pairs {
[INFO] [stdout] 10  | |         let stat = p.get("stat")?.as_object()?;
[INFO] [stdout] ...   |
[INFO] [stdout] 17  | |             id: stat.get("question_id")?.as_i64()? as i32,
[INFO] [stdout]     | |                                        ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 29  | |     Ok(())
[INFO] [stdout] 30  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(), err::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 function that returns `Result`
[INFO] [stdout]    --> src/cache/parser.rs:17:50
[INFO] [stdout]     |
[INFO] [stdout] 7   | / pub fn problem(problems: &mut Vec<Problem>, v: Value) -> Result<(), Error> {
[INFO] [stdout] 8   | |     let pairs = v.get("stat_status_pairs")?.as_array()?;
[INFO] [stdout] 9   | |     for p in pairs {
[INFO] [stdout] 10  | |         let stat = p.get("stat")?.as_object()?;
[INFO] [stdout] ...   |
[INFO] [stdout] 17  | |             id: stat.get("question_id")?.as_i64()? as i32,
[INFO] [stdout]     | |                                                  ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 29  | |     Ok(())
[INFO] [stdout] 30  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(), err::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 function that returns `Result`
[INFO] [stdout]    --> src/cache/parser.rs:18:39
[INFO] [stdout]     |
[INFO] [stdout] 7   | / pub fn problem(problems: &mut Vec<Problem>, v: Value) -> Result<(), Error> {
[INFO] [stdout] 8   | |     let pairs = v.get("stat_status_pairs")?.as_array()?;
[INFO] [stdout] 9   | |     for p in pairs {
[INFO] [stdout] 10  | |         let stat = p.get("stat")?.as_object()?;
[INFO] [stdout] ...   |
[INFO] [stdout] 18  | |             level: p.get("difficulty")?.as_object()?.get("level")?.as_i64()? as i32,
[INFO] [stdout]     | |                                       ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 29  | |     Ok(())
[INFO] [stdout] 30  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(), err::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 function that returns `Result`
[INFO] [stdout]    --> src/cache/parser.rs:18:52
[INFO] [stdout]     |
[INFO] [stdout] 7   | / pub fn problem(problems: &mut Vec<Problem>, v: Value) -> Result<(), Error> {
[INFO] [stdout] 8   | |     let pairs = v.get("stat_status_pairs")?.as_array()?;
[INFO] [stdout] 9   | |     for p in pairs {
[INFO] [stdout] 10  | |         let stat = p.get("stat")?.as_object()?;
[INFO] [stdout] ...   |
[INFO] [stdout] 18  | |             level: p.get("difficulty")?.as_object()?.get("level")?.as_i64()? as i32,
[INFO] [stdout]     | |                                                    ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 29  | |     Ok(())
[INFO] [stdout] 30  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(), err::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 function that returns `Result`
[INFO] [stdout]    --> src/cache/parser.rs:18:66
[INFO] [stdout]     |
[INFO] [stdout] 7   | / pub fn problem(problems: &mut Vec<Problem>, v: Value) -> Result<(), Error> {
[INFO] [stdout] 8   | |     let pairs = v.get("stat_status_pairs")?.as_array()?;
[INFO] [stdout] 9   | |     for p in pairs {
[INFO] [stdout] 10  | |         let stat = p.get("stat")?.as_object()?;
[INFO] [stdout] ...   |
[INFO] [stdout] 18  | |             level: p.get("difficulty")?.as_object()?.get("level")?.as_i64()? as i32,
[INFO] [stdout]     | |                                                                  ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 29  | |     Ok(())
[INFO] [stdout] 30  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(), err::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 function that returns `Result`
[INFO] [stdout]    --> src/cache/parser.rs:18:76
[INFO] [stdout]     |
[INFO] [stdout] 7   | / pub fn problem(problems: &mut Vec<Problem>, v: Value) -> Result<(), Error> {
[INFO] [stdout] 8   | |     let pairs = v.get("stat_status_pairs")?.as_array()?;
[INFO] [stdout] 9   | |     for p in pairs {
[INFO] [stdout] 10  | |         let stat = p.get("stat")?.as_object()?;
[INFO] [stdout] ...   |
[INFO] [stdout] 18  | |             level: p.get("difficulty")?.as_object()?.get("level")?.as_i64()? as i32,
[INFO] [stdout]     | |                                                                            ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 29  | |     Ok(())
[INFO] [stdout] 30  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(), err::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 function that returns `Result`
[INFO] [stdout]    --> src/cache/parser.rs:19:39
[INFO] [stdout]     |
[INFO] [stdout] 7   | / pub fn problem(problems: &mut Vec<Problem>, v: Value) -> Result<(), Error> {
[INFO] [stdout] 8   | |     let pairs = v.get("stat_status_pairs")?.as_array()?;
[INFO] [stdout] 9   | |     for p in pairs {
[INFO] [stdout] 10  | |         let stat = p.get("stat")?.as_object()?;
[INFO] [stdout] ...   |
[INFO] [stdout] 19  | |             locked: p.get("paid_only")?.as_bool()?,
[INFO] [stdout]     | |                                       ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 29  | |     Ok(())
[INFO] [stdout] 30  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(), err::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 function that returns `Result`
[INFO] [stdout]    --> src/cache/parser.rs:19:50
[INFO] [stdout]     |
[INFO] [stdout] 7   | / pub fn problem(problems: &mut Vec<Problem>, v: Value) -> Result<(), Error> {
[INFO] [stdout] 8   | |     let pairs = v.get("stat_status_pairs")?.as_array()?;
[INFO] [stdout] 9   | |     for p in pairs {
[INFO] [stdout] 10  | |         let stat = p.get("stat")?.as_object()?;
[INFO] [stdout] ...   |
[INFO] [stdout] 19  | |             locked: p.get("paid_only")?.as_bool()?,
[INFO] [stdout]     | |                                                  ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 29  | |     Ok(())
[INFO] [stdout] 30  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(), err::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 function that returns `Result`
[INFO] [stdout]    --> src/cache/parser.rs:20:46
[INFO] [stdout]     |
[INFO] [stdout] 7   | / pub fn problem(problems: &mut Vec<Problem>, v: Value) -> Result<(), Error> {
[INFO] [stdout] 8   | |     let pairs = v.get("stat_status_pairs")?.as_array()?;
[INFO] [stdout] 9   | |     for p in pairs {
[INFO] [stdout] 10  | |         let stat = p.get("stat")?.as_object()?;
[INFO] [stdout] ...   |
[INFO] [stdout] 20  | |             name: stat.get("question__title")?.as_str()?.to_string(),
[INFO] [stdout]     | |                                              ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 29  | |     Ok(())
[INFO] [stdout] 30  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(), err::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 function that returns `Result`
[INFO] [stdout]    --> src/cache/parser.rs:20:56
[INFO] [stdout]     |
[INFO] [stdout] 7   | / pub fn problem(problems: &mut Vec<Problem>, v: Value) -> Result<(), Error> {
[INFO] [stdout] 8   | |     let pairs = v.get("stat_status_pairs")?.as_array()?;
[INFO] [stdout] 9   | |     for p in pairs {
[INFO] [stdout] 10  | |         let stat = p.get("stat")?.as_object()?;
[INFO] [stdout] ...   |
[INFO] [stdout] 20  | |             name: stat.get("question__title")?.as_str()?.to_string(),
[INFO] [stdout]     | |                                                        ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 29  | |     Ok(())
[INFO] [stdout] 30  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(), err::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 function that returns `Result`
[INFO] [stdout]    --> src/cache/parser.rs:22:51
[INFO] [stdout]     |
[INFO] [stdout] 7   | / pub fn problem(problems: &mut Vec<Problem>, v: Value) -> Result<(), Error> {
[INFO] [stdout] 8   | |     let pairs = v.get("stat_status_pairs")?.as_array()?;
[INFO] [stdout] 9   | |     for p in pairs {
[INFO] [stdout] 10  | |         let stat = p.get("stat")?.as_object()?;
[INFO] [stdout] ...   |
[INFO] [stdout] 22  | |             slug: stat.get("question__title_slug")?.as_str()?.to_string(),
[INFO] [stdout]     | |                                                   ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 29  | |     Ok(())
[INFO] [stdout] 30  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(), err::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 function that returns `Result`
[INFO] [stdout]    --> src/cache/parser.rs:22:61
[INFO] [stdout]     |
[INFO] [stdout] 7   | / pub fn problem(problems: &mut Vec<Problem>, v: Value) -> Result<(), Error> {
[INFO] [stdout] 8   | |     let pairs = v.get("stat_status_pairs")?.as_array()?;
[INFO] [stdout] 9   | |     for p in pairs {
[INFO] [stdout] 10  | |         let stat = p.get("stat")?.as_object()?;
[INFO] [stdout] ...   |
[INFO] [stdout] 22  | |             slug: stat.get("question__title_slug")?.as_str()?.to_string(),
[INFO] [stdout]     | |                                                             ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 29  | |     Ok(())
[INFO] [stdout] 30  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(), err::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 function that returns `Result`
[INFO] [stdout]    --> src/cache/parser.rs:23:39
[INFO] [stdout]     |
[INFO] [stdout] 7   | / pub fn problem(problems: &mut Vec<Problem>, v: Value) -> Result<(), Error> {
[INFO] [stdout] 8   | |     let pairs = v.get("stat_status_pairs")?.as_array()?;
[INFO] [stdout] 9   | |     for p in pairs {
[INFO] [stdout] 10  | |         let stat = p.get("stat")?.as_object()?;
[INFO] [stdout] ...   |
[INFO] [stdout] 23  | |             starred: p.get("is_favor")?.as_bool()?,
[INFO] [stdout]     | |                                       ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 29  | |     Ok(())
[INFO] [stdout] 30  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(), err::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 function that returns `Result`
[INFO] [stdout]    --> src/cache/parser.rs:23:50
[INFO] [stdout]     |
[INFO] [stdout] 7   | / pub fn problem(problems: &mut Vec<Problem>, v: Value) -> Result<(), Error> {
[INFO] [stdout] 8   | |     let pairs = v.get("stat_status_pairs")?.as_array()?;
[INFO] [stdout] 9   | |     for p in pairs {
[INFO] [stdout] 10  | |         let stat = p.get("stat")?.as_object()?;
[INFO] [stdout] ...   |
[INFO] [stdout] 23  | |             starred: p.get("is_favor")?.as_bool()?,
[INFO] [stdout]     | |                                                  ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 29  | |     Ok(())
[INFO] [stdout] 30  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(), err::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 function that returns `Result`
[INFO] [stdout]    --> src/cache/parser.rs:24:36
[INFO] [stdout]     |
[INFO] [stdout] 7   | / pub fn problem(problems: &mut Vec<Problem>, v: Value) -> Result<(), Error> {
[INFO] [stdout] 8   | |     let pairs = v.get("stat_status_pairs")?.as_array()?;
[INFO] [stdout] 9   | |     for p in pairs {
[INFO] [stdout] 10  | |         let stat = p.get("stat")?.as_object()?;
[INFO] [stdout] ...   |
[INFO] [stdout] 24  | |             status: p.get("status")?.as_str().unwrap_or("Null").to_string(),
[INFO] [stdout]     | |                                    ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 29  | |     Ok(())
[INFO] [stdout] 30  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(), err::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 function that returns `Result`
[INFO] [stdout]    --> src/cache/parser.rs:35:21
[INFO] [stdout]     |
[INFO] [stdout] 33  | / pub fn desc(q: &mut Question, v: Value) -> Result<(), Error> {
[INFO] [stdout] 34  | |     let o = &v
[INFO] [stdout] 35  | |         .as_object()?
[INFO] [stdout]     | |                     ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), err::Error>`
[INFO] [stdout] 36  | |         .get("data")?
[INFO] [stdout] ...   |
[INFO] [stdout] 59  | |     Ok(())
[INFO] [stdout] 60  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(), err::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 function that returns `Result`
[INFO] [stdout]    --> src/cache/parser.rs:36:21
[INFO] [stdout]     |
[INFO] [stdout] 33  | / pub fn desc(q: &mut Question, v: Value) -> Result<(), Error> {
[INFO] [stdout] 34  | |     let o = &v
[INFO] [stdout] 35  | |         .as_object()?
[INFO] [stdout] 36  | |         .get("data")?
[INFO] [stdout]     | |                     ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 59  | |     Ok(())
[INFO] [stdout] 60  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(), err::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 function that returns `Result`
[INFO] [stdout]    --> src/cache/parser.rs:37:21
[INFO] [stdout]     |
[INFO] [stdout] 33  | / pub fn desc(q: &mut Question, v: Value) -> Result<(), Error> {
[INFO] [stdout] 34  | |     let o = &v
[INFO] [stdout] 35  | |         .as_object()?
[INFO] [stdout] 36  | |         .get("data")?
[INFO] [stdout] 37  | |         .as_object()?
[INFO] [stdout]     | |                     ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 59  | |     Ok(())
[INFO] [stdout] 60  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(), err::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 function that returns `Result`
[INFO] [stdout]    --> src/cache/parser.rs:38:25
[INFO] [stdout]     |
[INFO] [stdout] 33  | / pub fn desc(q: &mut Question, v: Value) -> Result<(), Error> {
[INFO] [stdout] 34  | |     let o = &v
[INFO] [stdout] 35  | |         .as_object()?
[INFO] [stdout] 36  | |         .get("data")?
[INFO] [stdout] 37  | |         .as_object()?
[INFO] [stdout] 38  | |         .get("question")?
[INFO] [stdout]     | |                         ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 59  | |     Ok(())
[INFO] [stdout] 60  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(), err::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 function that returns `Result`
[INFO] [stdout]    --> src/cache/parser.rs:39:21
[INFO] [stdout]     |
[INFO] [stdout] 33  | / pub fn desc(q: &mut Question, v: Value) -> Result<(), Error> {
[INFO] [stdout] 34  | |     let o = &v
[INFO] [stdout] 35  | |         .as_object()?
[INFO] [stdout] 36  | |         .get("data")?
[INFO] [stdout] ...   |
[INFO] [stdout] 39  | |         .as_object()?;
[INFO] [stdout]     | |                     ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 59  | |     Ok(())
[INFO] [stdout] 60  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(), err::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 function that returns `Result`
[INFO] [stdout]    --> src/cache/parser.rs:42:34
[INFO] [stdout]     |
[INFO] [stdout] 33  | / pub fn desc(q: &mut Question, v: Value) -> Result<(), Error> {
[INFO] [stdout] 34  | |     let o = &v
[INFO] [stdout] 35  | |         .as_object()?
[INFO] [stdout] 36  | |         .get("data")?
[INFO] [stdout] ...   |
[INFO] [stdout] 42  | |         content: o.get("content")?.as_str().unwrap_or("").to_string(),
[INFO] [stdout]     | |                                  ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 59  | |     Ok(())
[INFO] [stdout] 60  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(), err::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 function that returns `Result`
[INFO] [stdout]    --> src/cache/parser.rs:43:51
[INFO] [stdout]     |
[INFO] [stdout] 33  | / pub fn desc(q: &mut Question, v: Value) -> Result<(), Error> {
[INFO] [stdout] 34  | |     let o = &v
[INFO] [stdout] 35  | |         .as_object()?
[INFO] [stdout] 36  | |         .get("data")?
[INFO] [stdout] ...   |
[INFO] [stdout] 43  | |         stats: serde_json::from_str(o.get("stats")?.as_str()?)?,
[INFO] [stdout]     | |                                                   ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 59  | |     Ok(())
[INFO] [stdout] 60  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(), err::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 function that returns `Result`
[INFO] [stdout]    --> src/cache/parser.rs:43:61
[INFO] [stdout]     |
[INFO] [stdout] 33  | / pub fn desc(q: &mut Question, v: Value) -> Result<(), Error> {
[INFO] [stdout] 34  | |     let o = &v
[INFO] [stdout] 35  | |         .as_object()?
[INFO] [stdout] 36  | |         .get("data")?
[INFO] [stdout] ...   |
[INFO] [stdout] 43  | |         stats: serde_json::from_str(o.get("stats")?.as_str()?)?,
[INFO] [stdout]     | |                                                             ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 59  | |     Ok(())
[INFO] [stdout] 60  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(), err::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 function that returns `Result`
[INFO] [stdout]    --> src/cache/parser.rs:44:59
[INFO] [stdout]     |
[INFO] [stdout] 33  | / pub fn desc(q: &mut Question, v: Value) -> Result<(), Error> {
[INFO] [stdout] 34  | |     let o = &v
[INFO] [stdout] 35  | |         .as_object()?
[INFO] [stdout] 36  | |         .get("data")?
[INFO] [stdout] ...   |
[INFO] [stdout] 44  | |         defs: serde_json::from_str(o.get("codeDefinition")?.as_str()?)?,
[INFO] [stdout]     | |                                                           ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 59  | |     Ok(())
[INFO] [stdout] 60  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(), err::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 function that returns `Result`
[INFO] [stdout]    --> src/cache/parser.rs:44:69
[INFO] [stdout]     |
[INFO] [stdout] 33  | / pub fn desc(q: &mut Question, v: Value) -> Result<(), Error> {
[INFO] [stdout] 34  | |     let o = &v
[INFO] [stdout] 35  | |         .as_object()?
[INFO] [stdout] 36  | |         .get("data")?
[INFO] [stdout] ...   |
[INFO] [stdout] 44  | |         defs: serde_json::from_str(o.get("codeDefinition")?.as_str()?)?,
[INFO] [stdout]     | |                                                                     ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 59  | |     Ok(())
[INFO] [stdout] 60  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(), err::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 function that returns `Result`
[INFO] [stdout]    --> src/cache/parser.rs:45:38
[INFO] [stdout]     |
[INFO] [stdout] 33  | / pub fn desc(q: &mut Question, v: Value) -> Result<(), Error> {
[INFO] [stdout] 34  | |     let o = &v
[INFO] [stdout] 35  | |         .as_object()?
[INFO] [stdout] 36  | |         .get("data")?
[INFO] [stdout] ...   |
[INFO] [stdout] 45  | |         case: o.get("sampleTestCase")?.as_str()?.to_string(),
[INFO] [stdout]     | |                                      ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 59  | |     Ok(())
[INFO] [stdout] 60  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(), err::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 function that returns `Result`
[INFO] [stdout]    --> src/cache/parser.rs:45:48
[INFO] [stdout]     |
[INFO] [stdout] 33  | / pub fn desc(q: &mut Question, v: Value) -> Result<(), Error> {
[INFO] [stdout] 34  | |     let o = &v
[INFO] [stdout] 35  | |         .as_object()?
[INFO] [stdout] 36  | |         .get("data")?
[INFO] [stdout] ...   |
[INFO] [stdout] 45  | |         case: o.get("sampleTestCase")?.as_str()?.to_string(),
[INFO] [stdout]     | |                                                ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 59  | |     Ok(())
[INFO] [stdout] 60  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(), err::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 function that returns `Result`
[INFO] [stdout]    --> src/cache/parser.rs:47:51
[INFO] [stdout]     |
[INFO] [stdout] 33  | / pub fn desc(q: &mut Question, v: Value) -> Result<(), Error> {
[INFO] [stdout] 34  | |     let o = &v
[INFO] [stdout] 35  | |         .as_object()?
[INFO] [stdout] 36  | |         .get("data")?
[INFO] [stdout] ...   |
[INFO] [stdout] 47  | |                 .unwrap_or(o.get("sampleTestCase")?) // soft fail to the sampleTestCase
[INFO] [stdout]     | |                                                   ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 59  | |     Ok(())
[INFO] [stdout] 60  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(), err::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 function that returns `Result`
[INFO] [stdout]    --> src/cache/parser.rs:48:26
[INFO] [stdout]     |
[INFO] [stdout] 33  | / pub fn desc(q: &mut Question, v: Value) -> Result<(), Error> {
[INFO] [stdout] 34  | |     let o = &v
[INFO] [stdout] 35  | |         .as_object()?
[INFO] [stdout] 36  | |         .get("data")?
[INFO] [stdout] ...   |
[INFO] [stdout] 48  | |                 .as_str()?
[INFO] [stdout]     | |                          ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 59  | |     Ok(())
[INFO] [stdout] 60  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(), err::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 function that returns `Result`
[INFO] [stdout]    --> src/cache/parser.rs:50:57
[INFO] [stdout]     |
[INFO] [stdout] 33  | / pub fn desc(q: &mut Question, v: Value) -> Result<(), Error> {
[INFO] [stdout] 34  | |     let o = &v
[INFO] [stdout] 35  | |         .as_object()?
[INFO] [stdout] 36  | |         .get("data")?
[INFO] [stdout] ...   |
[INFO] [stdout] 50  | |         metadata: serde_json::from_str(o.get("metaData")?.as_str()?)?,
[INFO] [stdout]     | |                                                         ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 59  | |     Ok(())
[INFO] [stdout] 60  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(), err::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 function that returns `Result`
[INFO] [stdout]    --> src/cache/parser.rs:50:67
[INFO] [stdout]     |
[INFO] [stdout] 33  | / pub fn desc(q: &mut Question, v: Value) -> Result<(), Error> {
[INFO] [stdout] 34  | |     let o = &v
[INFO] [stdout] 35  | |         .as_object()?
[INFO] [stdout] 36  | |         .get("data")?
[INFO] [stdout] ...   |
[INFO] [stdout] 50  | |         metadata: serde_json::from_str(o.get("metaData")?.as_str()?)?,
[INFO] [stdout]     | |                                                                   ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 59  | |     Ok(())
[INFO] [stdout] 60  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(), err::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 function that returns `Result`
[INFO] [stdout]    --> src/cache/parser.rs:51:37
[INFO] [stdout]     |
[INFO] [stdout] 33  | / pub fn desc(q: &mut Question, v: Value) -> Result<(), Error> {
[INFO] [stdout] 34  | |     let o = &v
[INFO] [stdout] 35  | |         .as_object()?
[INFO] [stdout] 36  | |         .get("data")?
[INFO] [stdout] ...   |
[INFO] [stdout] 51  | |         test: o.get("enableRunCode")?.as_bool()?,
[INFO] [stdout]     | |                                     ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 59  | |     Ok(())
[INFO] [stdout] 60  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(), err::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 function that returns `Result`
[INFO] [stdout]    --> src/cache/parser.rs:51:48
[INFO] [stdout]     |
[INFO] [stdout] 33  | / pub fn desc(q: &mut Question, v: Value) -> Result<(), Error> {
[INFO] [stdout] 34  | |     let o = &v
[INFO] [stdout] 35  | |         .as_object()?
[INFO] [stdout] 36  | |         .get("data")?
[INFO] [stdout] ...   |
[INFO] [stdout] 51  | |         test: o.get("enableRunCode")?.as_bool()?,
[INFO] [stdout]     | |                                                ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 59  | |     Ok(())
[INFO] [stdout] 60  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(), err::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 function that returns `Result`
[INFO] [stdout]    --> src/cache/parser.rs:53:38
[INFO] [stdout]     |
[INFO] [stdout] 33  | / pub fn desc(q: &mut Question, v: Value) -> Result<(), Error> {
[INFO] [stdout] 34  | |     let o = &v
[INFO] [stdout] 35  | |         .as_object()?
[INFO] [stdout] 36  | |         .get("data")?
[INFO] [stdout] ...   |
[INFO] [stdout] 53  | |             .get("translatedContent")?
[INFO] [stdout]     | |                                      ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 59  | |     Ok(())
[INFO] [stdout] 60  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(), err::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 function that returns `Result`
[INFO] [stdout]    --> src/cache/parser.rs:65:28
[INFO] [stdout]     |
[INFO] [stdout] 63  | / pub fn tags(v: Value) -> Result<Vec<String>, Error> {
[INFO] [stdout] 64  | |     trace!("Parse tags...");
[INFO] [stdout] 65  | |     let tag = v.as_object()?.get("data")?.as_object()?.get("topicTag")?;
[INFO] [stdout]     | |                            ^ use `.ok_or(...)?` to provide an error compatible with `Result<Vec<std::string::String>, err::Error>`
[INFO] [stdout] 66  | |
[INFO] [stdout] ...   |
[INFO] [stdout] 78  | |     Ok(res)
[INFO] [stdout] 79  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<Vec<std::string::String>, err::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 function that returns `Result`
[INFO] [stdout]    --> src/cache/parser.rs:65:41
[INFO] [stdout]     |
[INFO] [stdout] 63  | / pub fn tags(v: Value) -> Result<Vec<String>, Error> {
[INFO] [stdout] 64  | |     trace!("Parse tags...");
[INFO] [stdout] 65  | |     let tag = v.as_object()?.get("data")?.as_object()?.get("topicTag")?;
[INFO] [stdout]     | |                                         ^ use `.ok_or(...)?` to provide an error compatible with `Result<Vec<std::string::String>, err::Error>`
[INFO] [stdout] 66  | |
[INFO] [stdout] ...   |
[INFO] [stdout] 78  | |     Ok(res)
[INFO] [stdout] 79  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<Vec<std::string::String>, err::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 function that returns `Result`
[INFO] [stdout]    --> src/cache/parser.rs:65:54
[INFO] [stdout]     |
[INFO] [stdout] 63  | / pub fn tags(v: Value) -> Result<Vec<String>, Error> {
[INFO] [stdout] 64  | |     trace!("Parse tags...");
[INFO] [stdout] 65  | |     let tag = v.as_object()?.get("data")?.as_object()?.get("topicTag")?;
[INFO] [stdout]     | |                                                      ^ use `.ok_or(...)?` to provide an error compatible with `Result<Vec<std::string::String>, err::Error>`
[INFO] [stdout] 66  | |
[INFO] [stdout] ...   |
[INFO] [stdout] 78  | |     Ok(res)
[INFO] [stdout] 79  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<Vec<std::string::String>, err::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 function that returns `Result`
[INFO] [stdout]    --> src/cache/parser.rs:65:71
[INFO] [stdout]     |
[INFO] [stdout] 63  | / pub fn tags(v: Value) -> Result<Vec<String>, Error> {
[INFO] [stdout] 64  | |     trace!("Parse tags...");
[INFO] [stdout] 65  | |     let tag = v.as_object()?.get("data")?.as_object()?.get("topicTag")?;
[INFO] [stdout]     | |                                                                       ^ use `.ok_or(...)?` to provide an error compatible with `Result<Vec<std::string::String>, err::Error>`
[INFO] [stdout] 66  | |
[INFO] [stdout] ...   |
[INFO] [stdout] 78  | |     Ok(res)
[INFO] [stdout] 79  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<Vec<std::string::String>, err::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 function that returns `Result`
[INFO] [stdout]    --> src/cache/parser.rs:71:30
[INFO] [stdout]     |
[INFO] [stdout] 63  | / pub fn tags(v: Value) -> Result<Vec<String>, Error> {
[INFO] [stdout] 64  | |     trace!("Parse tags...");
[INFO] [stdout] 65  | |     let tag = v.as_object()?.get("data")?.as_object()?.get("topicTag")?;
[INFO] [stdout] 66  | |
[INFO] [stdout] ...   |
[INFO] [stdout] 71  | |     let arr = tag.as_object()?.get("questions")?.as_array()?;
[INFO] [stdout]     | |                              ^ use `.ok_or(...)?` to provide an error compatible with `Result<Vec<std::string::String>, err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 78  | |     Ok(res)
[INFO] [stdout] 79  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<Vec<std::string::String>, err::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 function that returns `Result`
[INFO] [stdout]    --> src/cache/parser.rs:71:48
[INFO] [stdout]     |
[INFO] [stdout] 63  | / pub fn tags(v: Value) -> Result<Vec<String>, Error> {
[INFO] [stdout] 64  | |     trace!("Parse tags...");
[INFO] [stdout] 65  | |     let tag = v.as_object()?.get("data")?.as_object()?.get("topicTag")?;
[INFO] [stdout] 66  | |
[INFO] [stdout] ...   |
[INFO] [stdout] 71  | |     let arr = tag.as_object()?.get("questions")?.as_array()?;
[INFO] [stdout]     | |                                                ^ use `.ok_or(...)?` to provide an error compatible with `Result<Vec<std::string::String>, err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 78  | |     Ok(res)
[INFO] [stdout] 79  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<Vec<std::string::String>, err::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 function that returns `Result`
[INFO] [stdout]    --> src/cache/parser.rs:71:60
[INFO] [stdout]     |
[INFO] [stdout] 63  | / pub fn tags(v: Value) -> Result<Vec<String>, Error> {
[INFO] [stdout] 64  | |     trace!("Parse tags...");
[INFO] [stdout] 65  | |     let tag = v.as_object()?.get("data")?.as_object()?.get("topicTag")?;
[INFO] [stdout] 66  | |
[INFO] [stdout] ...   |
[INFO] [stdout] 71  | |     let arr = tag.as_object()?.get("questions")?.as_array()?;
[INFO] [stdout]     | |                                                            ^ use `.ok_or(...)?` to provide an error compatible with `Result<Vec<std::string::String>, err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 78  | |     Ok(res)
[INFO] [stdout] 79  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<Vec<std::string::String>, err::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 function that returns `Result`
[INFO] [stdout]    --> src/cache/parser.rs:75:31
[INFO] [stdout]     |
[INFO] [stdout] 63  | / pub fn tags(v: Value) -> Result<Vec<String>, Error> {
[INFO] [stdout] 64  | |     trace!("Parse tags...");
[INFO] [stdout] 65  | |     let tag = v.as_object()?.get("data")?.as_object()?.get("topicTag")?;
[INFO] [stdout] 66  | |
[INFO] [stdout] ...   |
[INFO] [stdout] 75  | |         res.push(q.as_object()?.get("questionId")?.as_str()?.to_string())
[INFO] [stdout]     | |                               ^ use `.ok_or(...)?` to provide an error compatible with `Result<Vec<std::string::String>, err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 78  | |     Ok(res)
[INFO] [stdout] 79  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<Vec<std::string::String>, err::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 function that returns `Result`
[INFO] [stdout]    --> src/cache/parser.rs:75:50
[INFO] [stdout]     |
[INFO] [stdout] 63  | / pub fn tags(v: Value) -> Result<Vec<String>, Error> {
[INFO] [stdout] 64  | |     trace!("Parse tags...");
[INFO] [stdout] 65  | |     let tag = v.as_object()?.get("data")?.as_object()?.get("topicTag")?;
[INFO] [stdout] 66  | |
[INFO] [stdout] ...   |
[INFO] [stdout] 75  | |         res.push(q.as_object()?.get("questionId")?.as_str()?.to_string())
[INFO] [stdout]     | |                                                  ^ use `.ok_or(...)?` to provide an error compatible with `Result<Vec<std::string::String>, err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 78  | |     Ok(res)
[INFO] [stdout] 79  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<Vec<std::string::String>, err::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 function that returns `Result`
[INFO] [stdout]    --> src/cache/parser.rs:75:60
[INFO] [stdout]     |
[INFO] [stdout] 63  | / pub fn tags(v: Value) -> Result<Vec<String>, Error> {
[INFO] [stdout] 64  | |     trace!("Parse tags...");
[INFO] [stdout] 65  | |     let tag = v.as_object()?.get("data")?.as_object()?.get("topicTag")?;
[INFO] [stdout] 66  | |
[INFO] [stdout] ...   |
[INFO] [stdout] 75  | |         res.push(q.as_object()?.get("questionId")?.as_str()?.to_string())
[INFO] [stdout]     | |                                                            ^ use `.ok_or(...)?` to provide an error compatible with `Result<Vec<std::string::String>, err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 78  | |     Ok(res)
[INFO] [stdout] 79  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<Vec<std::string::String>, err::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/cfg.rs:85:36
[INFO] [stdout]     |
[INFO] [stdout] 84  | /     pub fn sync(&self) -> Result<(), crate::Error> {
[INFO] [stdout] 85  | |         let home = dirs::home_dir()?;
[INFO] [stdout]     | |                                    ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), err::Error>`
[INFO] [stdout] 86  | |         let conf = home.join(".leetcode/leetcode.toml");
[INFO] [stdout] 87  | |         fs::write(conf, toml::ser::to_string_pretty(&self)?)?;
[INFO] [stdout] 88  | |
[INFO] [stdout] 89  | |         Ok(())
[INFO] [stdout] 90  | |     }
[INFO] [stdout]     | |_____- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(), err::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/cfg.rs:152:36
[INFO] [stdout]     |
[INFO] [stdout] 151 | /     pub fn root(&self) -> Result<String, crate::Error> {
[INFO] [stdout] 152 | |         let home = dirs::home_dir()?.to_string_lossy().to_string();
[INFO] [stdout]     | |                                    ^ use `.ok_or(...)?` to provide an error compatible with `Result<std::string::String, err::Error>`
[INFO] [stdout] 153 | |         let path = self.root.replace("~", &home);
[INFO] [stdout] 154 | |         Ok(path)
[INFO] [stdout] 155 | |     }
[INFO] [stdout]     | |_____- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<std::string::String, err::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/cfg.rs:182:52
[INFO] [stdout]     |
[INFO] [stdout] 178 | /     pub fn scripts(mut self) -> Result<String, crate::Error> {
[INFO] [stdout] 179 | |         let root = &self.root()?;
[INFO] [stdout] 180 | |         if self.scripts.is_none() {
[INFO] [stdout] 181 | |             let tmp = toml::from_str::<Config>(&DEFAULT_CONFIG)?;
[INFO] [stdout] 182 | |             self.scripts = Some(tmp.storage.scripts?);
[INFO] [stdout]     | |                                                    ^ use `.ok_or(...)?` to provide an error compatible with `Result<std::string::String, err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 190 | |         Ok(p.to_string_lossy().to_string())
[INFO] [stdout] 191 | |     }
[INFO] [stdout]     | |_____- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<std::string::String, err::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/cfg.rs:185:55
[INFO] [stdout]     |
[INFO] [stdout] 178 | /     pub fn scripts(mut self) -> Result<String, crate::Error> {
[INFO] [stdout] 179 | |         let root = &self.root()?;
[INFO] [stdout] 180 | |         if self.scripts.is_none() {
[INFO] [stdout] 181 | |             let tmp = toml::from_str::<Config>(&DEFAULT_CONFIG)?;
[INFO] [stdout] ...   |
[INFO] [stdout] 185 | |         let p = PathBuf::from(root).join(&self.scripts?);
[INFO] [stdout]     | |                                                       ^ use `.ok_or(...)?` to provide an error compatible with `Result<std::string::String, err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 190 | |         Ok(p.to_string_lossy().to_string())
[INFO] [stdout] 191 | |     }
[INFO] [stdout]     | |_____- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<std::string::String, err::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 function that returns `Result`
[INFO] [stdout]    --> src/cfg.rs:207:31
[INFO] [stdout]     |
[INFO] [stdout] 206 | / pub fn root() -> Result<std::path::PathBuf, crate::Error> {
[INFO] [stdout] 207 | |     let dir = dirs::home_dir()?.join(".leetcode");
[INFO] [stdout]     | |                               ^ use `.ok_or(...)?` to provide an error compatible with `Result<PathBuf, err::Error>`
[INFO] [stdout] 208 | |     if !dir.is_dir() {
[INFO] [stdout] 209 | |         info!("Generate root dir at {:?}.", &dir);
[INFO] [stdout] ...   |
[INFO] [stdout] 213 | |     Ok(dir)
[INFO] [stdout] 214 | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<PathBuf, err::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 an async block that returns `Result`
[INFO] [stdout]    --> src/cmds/data.rs:61:29
[INFO] [stdout]     |
[INFO] [stdout] 49  |       async fn handler(m: &ArgMatches<'_>) -> Result<(), crate::err::Error> {
[INFO] [stdout]     |  ___________________________________________________________________________-
[INFO] [stdout] 50  | |         use std::fs::File;
[INFO] [stdout] 51  | |         use std::path::Path;
[INFO] [stdout] 52  | |
[INFO] [stdout] ...   |
[INFO] [stdout] 61  | |                 .file_name()?
[INFO] [stdout]     | |                             ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 92  | |         Ok(())
[INFO] [stdout] 93  | |     }
[INFO] [stdout]     | |_____- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(), err::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 an async block that returns `Result`
[INFO] [stdout]    --> src/cmds/edit.rs:54:39
[INFO] [stdout]     |
[INFO] [stdout] 48  |       async fn handler(m: &ArgMatches<'_>) -> Result<(), crate::Error> {
[INFO] [stdout]     |  ______________________________________________________________________-
[INFO] [stdout] 49  | |         use crate::{cache::models::Question, Cache};
[INFO] [stdout] 50  | |         use std::fs::File;
[INFO] [stdout] 51  | |         use std::io::Write;
[INFO] [stdout] ...   |
[INFO] [stdout] 54  | |         let id: i32 = m.value_of("id")?.parse()?;
[INFO] [stdout]     | |                                       ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 104 | |         Ok(())
[INFO] [stdout] 105 | |     }
[INFO] [stdout]     | |_____- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(), err::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 an async block that returns `Result`
[INFO] [stdout]    --> src/cmds/edit.rs:61:48
[INFO] [stdout]     |
[INFO] [stdout] 48  |       async fn handler(m: &ArgMatches<'_>) -> Result<(), crate::Error> {
[INFO] [stdout]     |  ______________________________________________________________________-
[INFO] [stdout] 49  | |         use crate::{cache::models::Question, Cache};
[INFO] [stdout] 50  | |         use std::fs::File;
[INFO] [stdout] 51  | |         use std::io::Write;
[INFO] [stdout] ...   |
[INFO] [stdout] 61  | |             conf.code.lang = m.value_of("lang")?.to_string();
[INFO] [stdout]     | |                                                ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 104 | |         Ok(())
[INFO] [stdout] 105 | |     }
[INFO] [stdout]     | |_____- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(), err::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 an async block that returns `Result`
[INFO] [stdout]    --> src/cmds/exec.rs:44:39
[INFO] [stdout]     |
[INFO] [stdout] 41  |       async fn handler(m: &ArgMatches<'_>) -> Result<(), crate::Error> {
[INFO] [stdout]     |  ______________________________________________________________________-
[INFO] [stdout] 42  | |         use crate::cache::{Cache, Run};
[INFO] [stdout] 43  | |
[INFO] [stdout] 44  | |         let id: i32 = m.value_of("id")?.parse()?;
[INFO] [stdout]     | |                                       ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 49  | |         Ok(())
[INFO] [stdout] 50  | |     }
[INFO] [stdout]     | |_____- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(), err::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 an async block that returns `Result`
[INFO] [stdout]    --> src/cmds/list.rs:171:44
[INFO] [stdout]     |
[INFO] [stdout] 134 |       async fn handler(m: &ArgMatches<'_>) -> Result<(), Error> {
[INFO] [stdout]     |  _______________________________________________________________-
[INFO] [stdout] 135 | |         trace!("Input list command...");
[INFO] [stdout] 136 | |
[INFO] [stdout] 137 | |         let cache = Cache::new()?;
[INFO] [stdout] ...   |
[INFO] [stdout] 171 | |             let query = m.value_of("query")?;
[INFO] [stdout]     | |                                            ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 245 | |         Ok(())
[INFO] [stdout] 246 | |     }
[INFO] [stdout]     | |_____- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(), err::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 an async block that returns `Result`
[INFO] [stdout]    --> src/cmds/list.rs:177:53
[INFO] [stdout]     |
[INFO] [stdout] 134 |       async fn handler(m: &ArgMatches<'_>) -> Result<(), Error> {
[INFO] [stdout]     |  _______________________________________________________________-
[INFO] [stdout] 135 | |         trace!("Input list command...");
[INFO] [stdout] 136 | |
[INFO] [stdout] 137 | |         let cache = Cache::new()?;
[INFO] [stdout] ...   |
[INFO] [stdout] 177 | |             let range: Vec<_> = m.values_of("range")?.collect();
[INFO] [stdout]     | |                                                     ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 245 | |         Ok(())
[INFO] [stdout] 246 | |     }
[INFO] [stdout]     | |_____- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(), err::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 an async block that returns `Result`
[INFO] [stdout]    --> src/cmds/pick.rs:108:44
[INFO] [stdout]     |
[INFO] [stdout] 75  |       async fn handler(m: &ArgMatches<'_>) -> Result<(), Error> {
[INFO] [stdout]     |  _______________________________________________________________-
[INFO] [stdout] 76  | |         use crate::cache::Cache;
[INFO] [stdout] 77  | |         use rand::Rng;
[INFO] [stdout] 78  | |
[INFO] [stdout] ...   |
[INFO] [stdout] 108 | |             let query = m.value_of("query")?;
[INFO] [stdout]     | |                                            ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 132 | |         Ok(())
[INFO] [stdout] 133 | |     }
[INFO] [stdout]     | |_____- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(), err::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 an async block that returns `Result`
[INFO] [stdout]    --> src/cmds/pick.rs:123:28
[INFO] [stdout]     |
[INFO] [stdout] 75  |       async fn handler(m: &ArgMatches<'_>) -> Result<(), Error> {
[INFO] [stdout]     |  _______________________________________________________________-
[INFO] [stdout] 76  | |         use crate::cache::Cache;
[INFO] [stdout] 77  | |         use rand::Rng;
[INFO] [stdout] 78  | |
[INFO] [stdout] ...   |
[INFO] [stdout] 123 | |             let e = r.err()?;
[INFO] [stdout]     | |                            ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 132 | |         Ok(())
[INFO] [stdout] 133 | |     }
[INFO] [stdout]     | |_____- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(), err::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 an async block that returns `Result`
[INFO] [stdout]    --> src/cmds/test.rs:49:39
[INFO] [stdout]     |
[INFO] [stdout] 47  |       async fn handler(m: &ArgMatches<'_>) -> Result<(), crate::Error> {
[INFO] [stdout]     |  ______________________________________________________________________-
[INFO] [stdout] 48  | |         use crate::cache::{Cache, Run};
[INFO] [stdout] 49  | |         let id: i32 = m.value_of("id")?.parse()?;
[INFO] [stdout]     | |                                       ^ use `.ok_or(...)?` to provide an error compatible with `Result<(), err::Error>`
[INFO] [stdout] 50  | |         let testcase = m.value_of("testcase");
[INFO] [stdout] ...   |
[INFO] [stdout] 60  | |         Ok(())
[INFO] [stdout] 61  | |     }
[INFO] [stdout]     | |_____- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<(), err::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 function that returns `Result`
[INFO] [stdout]    --> src/helper.rs:303:21
[INFO] [stdout]     |
[INFO] [stdout] 299 | /     pub fn code_path(target: &Problem, l: Option<String>) -> Result<String, crate::Error> {
[INFO] [stdout] 300 | |         let conf = crate::cfg::locate()?;
[INFO] [stdout] 301 | |         let mut lang = conf.code.lang;
[INFO] [stdout] 302 | |         if l.is_some() {
[INFO] [stdout] 303 | |             lang = l?;
[INFO] [stdout]     | |                     ^ use `.ok_or(...)?` to provide an error compatible with `Result<std::string::String, err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 316 | |         Ok(path)
[INFO] [stdout] 317 | |     }
[INFO] [stdout]     | |_____- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<std::string::String, err::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 function that returns `Result`
[INFO] [stdout]    --> src/plugins/chrome.rs:55:32
[INFO] [stdout]     |
[INFO] [stdout] 42  | / pub fn cookies() -> Result<Ident, crate::Error> {
[INFO] [stdout] 43  | |     let ccfg = crate::cfg::locate()?.cookies;
[INFO] [stdout] 44  | |     if !ccfg.csrf.is_empty() && !ccfg.session.is_empty() {
[INFO] [stdout] 45  | |         return Ok(Ident {
[INFO] [stdout] ...   |
[INFO] [stdout] 55  | |     let home = dirs::home_dir()?;
[INFO] [stdout]     | |                                ^ use `.ok_or(...)?` to provide an error compatible with `Result<Ident, err::Error>`
[INFO] [stdout] ...   |
[INFO] [stdout] 89  | |     })
[INFO] [stdout] 90  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<Ident, err::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 function that returns `Result`
[INFO] [stdout]    --> src/plugins/chrome.rs:87:33
[INFO] [stdout]     |
[INFO] [stdout] 42  | / pub fn cookies() -> Result<Ident, crate::Error> {
[INFO] [stdout] 43  | |     let ccfg = crate::cfg::locate()?.cookies;
[INFO] [stdout] 44  | |     if !ccfg.csrf.is_empty() && !ccfg.session.is_empty() {
[INFO] [stdout] 45  | |         return Ok(Ident {
[INFO] [stdout] ...   |
[INFO] [stdout] 87  | |         csrf: m.get("csrftoken")?.to_string(),
[INFO] [stdout]     | |                                 ^ use `.ok_or(...)?` to provide an error compatible with `Result<Ident, err::Error>`
[INFO] [stdout] 88  | |         session: m.get("LEETCODE_SESSION")?.to_string(),
[INFO] [stdout] 89  | |     })
[INFO] [stdout] 90  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<Ident, err::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 function that returns `Result`
[INFO] [stdout]    --> src/plugins/chrome.rs:88:43
[INFO] [stdout]     |
[INFO] [stdout] 42  | / pub fn cookies() -> Result<Ident, crate::Error> {
[INFO] [stdout] 43  | |     let ccfg = crate::cfg::locate()?.cookies;
[INFO] [stdout] 44  | |     if !ccfg.csrf.is_empty() && !ccfg.session.is_empty() {
[INFO] [stdout] 45  | |         return Ok(Ident {
[INFO] [stdout] ...   |
[INFO] [stdout] 88  | |         session: m.get("LEETCODE_SESSION")?.to_string(),
[INFO] [stdout]     | |                                           ^ use `.ok_or(...)?` to provide an error compatible with `Result<Ident, err::Error>`
[INFO] [stdout] 89  | |     })
[INFO] [stdout] 90  | | }
[INFO] [stdout]     | |_- this function returns a `Result`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the trait `FromResidual<std::option::Option<Infallible>>` is not implemented for `Result<Ident, err::Error>`
[INFO] [stdout] note: required by `from_residual`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 87 previous errors
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0412, E0554.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `leetcode-cli` due to 88 previous errors
[INFO] running `Command { std: "docker" "inspect" "f9b1dbe944f4f47804c3e5f3f38e8acacf0f719d6649e99d7033a81fb7a38e98", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f9b1dbe944f4f47804c3e5f3f38e8acacf0f719d6649e99d7033a81fb7a38e98", kill_on_drop: false }`
[INFO] [stdout] f9b1dbe944f4f47804c3e5f3f38e8acacf0f719d6649e99d7033a81fb7a38e98
