[INFO] cloning repository https://github.com/khaneliman/month-of-ai
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/khaneliman/month-of-ai" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkhaneliman%2Fmonth-of-ai", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkhaneliman%2Fmonth-of-ai'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 9c22778f6ec0f1cf12a8d35a306d6e31ca30723b
[INFO] testing khaneliman/month-of-ai against 1.98.0-beta.1 for beta-1.98-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fkhaneliman%2Fmonth-of-ai" "/workspace/builds/worker-5-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/khaneliman/month-of-ai
[INFO] finished tweaking git repo https://github.com/khaneliman/month-of-ai
[INFO] tweaked toml for git repo https://github.com/khaneliman/month-of-ai written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/khaneliman/month-of-ai on toolchain 1.98.0-beta.1
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/khaneliman/month-of-ai already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.98.0-beta.1" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 9742e7389424813725219e70f0f6a940fdb4e728625b1e32119e09fb824dae82
[INFO] running `Command { std: "docker" "start" "9742e7389424813725219e70f0f6a940fdb4e728625b1e32119e09fb824dae82", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9742e7389424813725219e70f0f6a940fdb4e728625b1e32119e09fb824dae82", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "9742e7389424813725219e70f0f6a940fdb4e728625b1e32119e09fb824dae82" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "9742e7389424813725219e70f0f6a940fdb4e728625b1e32119e09fb824dae82", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "9742e7389424813725219e70f0f6a940fdb4e728625b1e32119e09fb824dae82" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling unicode-ident v1.0.14
[INFO] [stderr]    Compiling jobserver v0.1.32
[INFO] [stderr]    Compiling getrandom v0.2.15
[INFO] [stderr]    Compiling typenum v1.17.0
[INFO] [stderr]    Compiling log v0.4.25
[INFO] [stderr]    Compiling pkg-config v0.3.31
[INFO] [stderr]    Compiling smallvec v1.13.2
[INFO] [stderr]    Compiling once_cell v1.20.2
[INFO] [stderr]    Compiling bytes v1.9.0
[INFO] [stderr]    Compiling socket2 v0.5.8
[INFO] [stderr]    Compiling subtle v2.6.1
[INFO] [stderr]    Compiling serde v1.0.217
[INFO] [stderr]    Compiling litemap v0.7.4
[INFO] [stderr]    Compiling cpufeatures v0.2.16
[INFO] [stderr]    Compiling hashbrown v0.15.2
[INFO] [stderr]    Compiling bitflags v2.8.0
[INFO] [stderr]    Compiling futures-util v0.3.31
[INFO] [stderr]    Compiling proc-macro2 v1.0.93
[INFO] [stderr]    Compiling httparse v1.9.5
[INFO] [stderr]    Compiling aho-corasick v1.1.3
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling mio v1.0.3
[INFO] [stderr]    Compiling tracing-core v0.1.33
[INFO] [stderr]    Compiling write16 v1.0.0
[INFO] [stderr]    Compiling cc v1.2.10
[INFO] [stderr]    Compiling parking_lot_core v0.9.10
[INFO] [stderr]    Compiling utf16_iter v1.0.5
[INFO] [stderr]    Compiling icu_normalizer_data v1.5.0
[INFO] [stderr]    Compiling zstd-safe v7.2.1
[INFO] [stderr]    Compiling serde_json v1.0.137
[INFO] [stderr]    Compiling local-waker v0.1.4
[INFO] [stderr]    Compiling quote v1.0.38
[INFO] [stderr]    Compiling parking_lot v0.12.3
[INFO] [stderr]    Compiling http v0.2.12
[INFO] [stderr]    Compiling ahash v0.8.11
[INFO] [stderr]    Compiling tracing v0.1.41
[INFO] [stderr]    Compiling syn v2.0.96
[INFO] [stderr]    Compiling time-core v0.1.2
[INFO] [stderr]    Compiling openssl v0.10.68
[INFO] [stderr]    Compiling spin v0.9.8
[INFO] [stderr]    Compiling regex-lite v0.1.6
[INFO] [stderr]    Compiling tokio v1.43.0
[INFO] [stderr]    Compiling indexmap v2.7.1
[INFO] [stderr]    Compiling time-macros v0.2.19
[INFO] [stderr]    Compiling deranged v0.3.11
[INFO] [stderr]    Compiling regex-automata v0.4.9
[INFO] [stderr]    Compiling bytestring v1.4.0
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]    Compiling miniz_oxide v0.8.3
[INFO] [stderr]    Compiling actix-service v2.0.2
[INFO] [stderr]    Compiling actix-utils v3.0.1
[INFO] [stderr]    Compiling cookie v0.16.2
[INFO] [stderr]    Compiling convert_case v0.4.0
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling brotli v6.0.0
[INFO] [stderr]    Compiling local-channel v0.1.5
[INFO] [stderr]    Compiling flate2 v1.0.35
[INFO] [stderr]    Compiling language-tags v0.3.2
[INFO] [stderr]    Compiling openssl-sys v0.9.104
[INFO] [stderr]    Compiling zstd-sys v2.0.13+zstd.1.5.6
[INFO] [stderr]    Compiling ring v0.17.8
[INFO] [stderr]    Compiling base64 v0.20.0
[INFO] [stderr]    Compiling crypto-common v0.1.6
[INFO] [stderr]    Compiling block-buffer v0.10.4
[INFO] [stderr]    Compiling inout v0.1.3
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling cipher v0.4.4
[INFO] [stderr]    Compiling universal-hash v0.5.1
[INFO] [stderr]    Compiling aead v0.5.2
[INFO] [stderr]    Compiling polyval v0.6.2
[INFO] [stderr]    Compiling ctr v0.9.2
[INFO] [stderr]    Compiling aes v0.8.4
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling time v0.3.37
[INFO] [stderr]    Compiling ghash v0.5.1
[INFO] [stderr]    Compiling hkdf v0.12.4
[INFO] [stderr]    Compiling sha2 v0.10.8
[INFO] [stderr]    Compiling sha1 v0.10.6
[INFO] [stderr]    Compiling native-tls v0.2.12
[INFO] [stderr]    Compiling http-body v0.4.6
[INFO] [stderr]    Compiling aes-gcm v0.10.3
[INFO] [stderr]    Compiling anyhow v1.0.95
[INFO] [stderr]    Compiling minreq v2.13.0
[INFO] [stderr]    Compiling impl-more v0.1.9
[INFO] [stderr]    Compiling base64 v0.12.3
[INFO] [stderr]    Compiling webpki-roots v0.25.4
[INFO] [stderr]    Compiling humantime v2.1.0
[INFO] [stderr]    Compiling iana-time-zone v0.1.61
[INFO] [stderr]    Compiling regex v1.11.1
[INFO] [stderr]    Compiling unsafe-libyaml v0.2.11
[INFO] [stderr]    Compiling maplit v1.0.2
[INFO] [stderr]    Compiling chrono v0.4.39
[INFO] [stderr]    Compiling env_filter v0.1.3
[INFO] [stderr]    Compiling env_logger v0.11.6
[INFO] [stderr]    Compiling synstructure v0.13.1
[INFO] [stderr]    Compiling rustls v0.21.12
[INFO] [stderr]    Compiling actix-router v0.5.3
[INFO] [stderr]    Compiling tokio-util v0.7.13
[INFO] [stderr]    Compiling actix-rt v2.10.0
[INFO] [stderr]    Compiling strum_macros v0.24.3
[INFO] [stderr]    Compiling zerofrom-derive v0.1.5
[INFO] [stderr]    Compiling yoke-derive v0.7.5
[INFO] [stderr]    Compiling zerovec-derive v0.10.3
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling icu_provider_macros v1.5.0
[INFO] [stderr]    Compiling serde_derive v1.0.217
[INFO] [stderr]    Compiling zerocopy-derive v0.7.35
[INFO] [stderr]    Compiling h2 v0.3.26
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling actix-codec v0.5.2
[INFO] [stderr]    Compiling derive_more v0.99.18
[INFO] [stderr]    Compiling actix-web-codegen v4.3.0
[INFO] [stderr]    Compiling actix-server v2.5.0
[INFO] [stderr]    Compiling zerofrom v0.1.5
[INFO] [stderr]    Compiling sct v0.7.1
[INFO] [stderr]    Compiling rustls-webpki v0.101.7
[INFO] [stderr]    Compiling yoke v0.7.5
[INFO] [stderr]    Compiling actix-macros v0.2.4
[INFO] [stderr]    Compiling strum v0.24.1
[INFO] [stderr]    Compiling spinners v4.1.1
[INFO] [stderr]    Compiling zerocopy v0.7.35
[INFO] [stderr]    Compiling zerovec v0.10.4
[INFO] [stderr]    Compiling ppv-lite86 v0.2.20
[INFO] [stderr]    Compiling tinystr v0.7.6
[INFO] [stderr]    Compiling icu_collections v1.5.0
[INFO] [stderr]    Compiling icu_locid v1.5.0
[INFO] [stderr]    Compiling zstd v0.13.2
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling icu_provider v1.5.0
[INFO] [stderr]    Compiling icu_locid_transform v1.5.0
[INFO] [stderr]    Compiling icu_properties v1.5.1
[INFO] [stderr]    Compiling tokio-native-tls v0.3.1
[INFO] [stderr]    Compiling actix-http v3.9.0
[INFO] [stderr]    Compiling hyper v0.14.32
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling serde_yaml v0.9.34+deprecated
[INFO] [stderr]    Compiling icu_normalizer v1.5.0
[INFO] [stderr]    Compiling idna_adapter v1.2.0
[INFO] [stderr]    Compiling openai-api-rs v4.1.1
[INFO] [stderr]    Compiling idna v1.0.3
[INFO] [stderr]    Compiling url v2.5.4
[INFO] [stderr]    Compiling actix-web v4.9.0
[INFO] [stderr]    Compiling hyper-tls v0.5.0
[INFO] [stderr]    Compiling reqwest v0.11.27
[INFO] [stderr]    Compiling actix-session v0.9.0
[INFO] [stderr]    Compiling actix-cors v0.7.0
[INFO] [stderr]    Compiling month-of-ai-api v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `RequestTool` and `ToolFunction`
[INFO] [stdout]  --> src/api/movies.rs:3:37
[INFO] [stdout]   |
[INFO] [stdout] 3 |     ChatCompletionRequest, Message, RequestTool, ResponseFormat, ResponseType::JsonObject,
[INFO] [stdout]   |                                     ^^^^^^^^^^^
[INFO] [stdout] 4 |     ResponseType::Text, ToolFunction,
[INFO] [stdout]   |                         ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ChatCompletionChoice`
[INFO] [stdout]  --> src/api/movies.rs:6:46
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::model::chat_completion_response::{ChatCompletionChoice, ChatCompletionResponse};
[INFO] [stdout]   |                                              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `error`, `info`, and `warn`
[INFO] [stdout]   --> src/api/movies.rs:16:18
[INFO] [stdout]    |
[INFO] [stdout] 16 | use log::{debug, error, info, warn};
[INFO] [stdout]    |                  ^^^^^  ^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `error`, `info`, and `warn`
[INFO] [stdout]  --> src/api/scraper.rs:7:18
[INFO] [stdout]   |
[INFO] [stdout] 7 | use log::{debug, error, info, warn};
[INFO] [stdout]   |                  ^^^^^  ^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::chat_completion_request::Message`
[INFO] [stdout]  --> src/model/chat_completion_response.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use super::chat_completion_request::Message;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `user` should have an upper camel case name
[INFO] [stdout]   --> src/model/chat_completion_response.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 47 |     user,
[INFO] [stdout]    |     ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `User`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `system` should have an upper camel case name
[INFO] [stdout]   --> src/model/chat_completion_response.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 48 |     system,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `System`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `assistant` should have an upper camel case name
[INFO] [stdout]   --> src/model/chat_completion_response.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 49 |     assistant,
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to upper camel case: `Assistant`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `function` should have an upper camel case name
[INFO] [stdout]   --> src/model/chat_completion_response.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 50 |     function,
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Function`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `stop` should have an upper camel case name
[INFO] [stdout]   --> src/model/chat_completion_response.rs:71:5
[INFO] [stdout]    |
[INFO] [stdout] 71 |     stop,
[INFO] [stdout]    |     ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Stop`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `length` should have an upper camel case name
[INFO] [stdout]   --> src/model/chat_completion_response.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 72 |     length,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to upper camel case: `Length`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `content_filter` should have an upper camel case name
[INFO] [stdout]   --> src/model/chat_completion_response.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 73 |     content_filter,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ContentFilter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `tool_calls` should have an upper camel case name
[INFO] [stdout]   --> src/model/chat_completion_response.rs:74:5
[INFO] [stdout]    |
[INFO] [stdout] 74 |     tool_calls,
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `ToolCalls`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `null` should have an upper camel case name
[INFO] [stdout]   --> src/model/chat_completion_response.rs:75:5
[INFO] [stdout]    |
[INFO] [stdout] 75 |     null,
[INFO] [stdout]    |     ^^^^ help: convert the identifier to upper camel case: `Null`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/api/movies.rs:306:17
[INFO] [stdout]     |
[INFO] [stdout] 306 |             let mut possible_movies = cache.lock().unwrap().top_movies.lock().unwrap().to_vec();
[INFO] [stdout]     |                 ----^^^^^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::datetime_from_str`: use `DateTime::parse_from_str` or `NaiveDateTime::parse_from_str` with `and_utc()` or `and_local_timezone()` instead
[INFO] [stdout]    --> src/util/movie_helper.rs:128:46
[INFO] [stdout]     |
[INFO] [stdout] 128 |                 if let Ok(parsed_date) = Utc.datetime_from_str(&m.release_date, "%Y-%m-%d") {
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::datetime_from_str`: use `DateTime::parse_from_str` or `NaiveDateTime::parse_from_str` with `and_utc()` or `and_local_timezone()` instead
[INFO] [stdout]    --> src/util/movie_helper.rs:131:47
[INFO] [stdout]     |
[INFO] [stdout] 131 |                     if let Ok(min_date) = Utc.datetime_from_str(&release_date_min, "%Y-%m-%d") {
[INFO] [stdout]     |                                               ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::datetime_from_str`: use `DateTime::parse_from_str` or `NaiveDateTime::parse_from_str` with `and_utc()` or `and_local_timezone()` instead
[INFO] [stdout]    --> src/util/movie_helper.rs:143:29
[INFO] [stdout]     |
[INFO] [stdout] 143 |                         Utc.datetime_from_str(&m.release_date, "%Y-%m-%d")
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::datetime_from_str`: use `DateTime::parse_from_str` or `NaiveDateTime::parse_from_str` with `and_utc()` or `and_local_timezone()` instead
[INFO] [stdout]    --> src/util/movie_helper.rs:160:31
[INFO] [stdout]     |
[INFO] [stdout] 160 |                 |m| match Utc.datetime_from_str(&m.release_date, "%Y-%m-%d") {
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::datetime_from_str`: use `DateTime::parse_from_str` or `NaiveDateTime::parse_from_str` with `and_utc()` or `and_local_timezone()` instead
[INFO] [stdout]    --> src/util/movie_helper.rs:162:51
[INFO] [stdout]     |
[INFO] [stdout] 162 |                         if let Ok(max_date) = Utc.datetime_from_str(&release_date_max, "%Y-%m-%d") {
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `name` is never used
[INFO] [stdout]   --> src/model/chat_completion_request.rs:63:12
[INFO] [stdout]    |
[INFO] [stdout] 43 | impl MessageBuilder {
[INFO] [stdout]    | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn name(mut self, name: String) -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OAIChoices` is never constructed
[INFO] [stdout]  --> src/model/chat_completion_response.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct OAIChoices {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/model/chat_completion_response.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct ChatCompletionResponse {
[INFO] [stdout]    |            ---------------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub id: Option<String>,
[INFO] [stdout]    |         ^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub object: Option<String>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub created: Option<u64>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub model: Option<String>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub usage: Usage,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 41 |     pub system_fingerprint: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 42 |     pub headers: Option<HashMap<String, String>>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ChatCompletionResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `encoding_format` is never used
[INFO] [stdout]   --> src/model/embedding_request_body.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl EmbeddingRequestBodyBuilder {
[INFO] [stdout]    | -------------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn encoding_format(mut self, encoding_format: Option<String>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `builder` is never used
[INFO] [stdout]   --> src/model/movies/movie_criteria.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl MovieCriteria {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] 16 |     pub fn builder() -> MovieCriteriaBuilder {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SortCriteria` is never constructed
[INFO] [stdout]   --> src/model/movies/movie_criteria.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct SortCriteria {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SortDirection` is never used
[INFO] [stdout]   --> src/model/movies/movie_criteria.rs:29:10
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub enum SortDirection {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Criteria` is never constructed
[INFO] [stdout]   --> src/model/movies/movie_criteria.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct Criteria {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MovieCriteriaBuilder` is never constructed
[INFO] [stdout]   --> src/model/movies/movie_criteria.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub struct MovieCriteriaBuilder {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/model/movies/movie_criteria.rs:53:12
[INFO] [stdout]     |
[INFO] [stdout]  52 | impl MovieCriteriaBuilder {
[INFO] [stdout]     | ------------------------- associated items in this implementation
[INFO] [stdout]  53 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  66 |     pub fn search(mut self, search: String) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  71 |     pub fn genre(mut self, genre: String) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  76 |     pub fn mpaa(mut self, mpaa: String) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  81 |     pub fn release_date_min(mut self, release_date_min: String) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  86 |     pub fn release_date_max(mut self, release_date_max: String) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  91 |     pub fn score_min(mut self, score_min: f32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn score_max(mut self, score_max: f32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn natural_language(mut self, natural_language: String) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn build(self) -> MovieCriteria {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 05s
[INFO] running `Command { std: "docker" "inspect" "9742e7389424813725219e70f0f6a940fdb4e728625b1e32119e09fb824dae82", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "9742e7389424813725219e70f0f6a940fdb4e728625b1e32119e09fb824dae82" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]    Compiling month-of-ai-api v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `RequestTool` and `ToolFunction`
[INFO] [stdout]  --> src/api/movies.rs:3:37
[INFO] [stdout]   |
[INFO] [stdout] 3 |     ChatCompletionRequest, Message, RequestTool, ResponseFormat, ResponseType::JsonObject,
[INFO] [stdout]   |                                     ^^^^^^^^^^^
[INFO] [stdout] 4 |     ResponseType::Text, ToolFunction,
[INFO] [stdout]   |                         ^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ChatCompletionChoice`
[INFO] [stdout]  --> src/api/movies.rs:6:46
[INFO] [stdout]   |
[INFO] [stdout] 6 | use crate::model::chat_completion_response::{ChatCompletionChoice, ChatCompletionResponse};
[INFO] [stdout]   |                                              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `error`, `info`, and `warn`
[INFO] [stdout]   --> src/api/movies.rs:16:18
[INFO] [stdout]    |
[INFO] [stdout] 16 | use log::{debug, error, info, warn};
[INFO] [stdout]    |                  ^^^^^  ^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `error`, `info`, and `warn`
[INFO] [stdout]  --> src/api/scraper.rs:7:18
[INFO] [stdout]   |
[INFO] [stdout] 7 | use log::{debug, error, info, warn};
[INFO] [stdout]   |                  ^^^^^  ^^^^  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::chat_completion_request::Message`
[INFO] [stdout]  --> src/model/chat_completion_response.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use super::chat_completion_request::Message;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `user` should have an upper camel case name
[INFO] [stdout]   --> src/model/chat_completion_response.rs:47:5
[INFO] [stdout]    |
[INFO] [stdout] 47 |     user,
[INFO] [stdout]    |     ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `User`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `system` should have an upper camel case name
[INFO] [stdout]   --> src/model/chat_completion_response.rs:48:5
[INFO] [stdout]    |
[INFO] [stdout] 48 |     system,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `System`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `assistant` should have an upper camel case name
[INFO] [stdout]   --> src/model/chat_completion_response.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 49 |     assistant,
[INFO] [stdout]    |     ^^^^^^^^^ help: convert the identifier to upper camel case: `Assistant`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `function` should have an upper camel case name
[INFO] [stdout]   --> src/model/chat_completion_response.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 50 |     function,
[INFO] [stdout]    |     ^^^^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Function`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `stop` should have an upper camel case name
[INFO] [stdout]   --> src/model/chat_completion_response.rs:71:5
[INFO] [stdout]    |
[INFO] [stdout] 71 |     stop,
[INFO] [stdout]    |     ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Stop`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `length` should have an upper camel case name
[INFO] [stdout]   --> src/model/chat_completion_response.rs:72:5
[INFO] [stdout]    |
[INFO] [stdout] 72 |     length,
[INFO] [stdout]    |     ^^^^^^ help: convert the identifier to upper camel case: `Length`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `content_filter` should have an upper camel case name
[INFO] [stdout]   --> src/model/chat_completion_response.rs:73:5
[INFO] [stdout]    |
[INFO] [stdout] 73 |     content_filter,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ContentFilter`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `tool_calls` should have an upper camel case name
[INFO] [stdout]   --> src/model/chat_completion_response.rs:74:5
[INFO] [stdout]    |
[INFO] [stdout] 74 |     tool_calls,
[INFO] [stdout]    |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `ToolCalls`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `null` should have an upper camel case name
[INFO] [stdout]   --> src/model/chat_completion_response.rs:75:5
[INFO] [stdout]    |
[INFO] [stdout] 75 |     null,
[INFO] [stdout]    |     ^^^^ help: convert the identifier to upper camel case: `Null`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/api/movies.rs:306:17
[INFO] [stdout]     |
[INFO] [stdout] 306 |             let mut possible_movies = cache.lock().unwrap().top_movies.lock().unwrap().to_vec();
[INFO] [stdout]     |                 ----^^^^^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::datetime_from_str`: use `DateTime::parse_from_str` or `NaiveDateTime::parse_from_str` with `and_utc()` or `and_local_timezone()` instead
[INFO] [stdout]    --> src/util/movie_helper.rs:128:46
[INFO] [stdout]     |
[INFO] [stdout] 128 |                 if let Ok(parsed_date) = Utc.datetime_from_str(&m.release_date, "%Y-%m-%d") {
[INFO] [stdout]     |                                              ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::datetime_from_str`: use `DateTime::parse_from_str` or `NaiveDateTime::parse_from_str` with `and_utc()` or `and_local_timezone()` instead
[INFO] [stdout]    --> src/util/movie_helper.rs:131:47
[INFO] [stdout]     |
[INFO] [stdout] 131 |                     if let Ok(min_date) = Utc.datetime_from_str(&release_date_min, "%Y-%m-%d") {
[INFO] [stdout]     |                                               ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::datetime_from_str`: use `DateTime::parse_from_str` or `NaiveDateTime::parse_from_str` with `and_utc()` or `and_local_timezone()` instead
[INFO] [stdout]    --> src/util/movie_helper.rs:143:29
[INFO] [stdout]     |
[INFO] [stdout] 143 |                         Utc.datetime_from_str(&m.release_date, "%Y-%m-%d")
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::datetime_from_str`: use `DateTime::parse_from_str` or `NaiveDateTime::parse_from_str` with `and_utc()` or `and_local_timezone()` instead
[INFO] [stdout]    --> src/util/movie_helper.rs:160:31
[INFO] [stdout]     |
[INFO] [stdout] 160 |                 |m| match Utc.datetime_from_str(&m.release_date, "%Y-%m-%d") {
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::datetime_from_str`: use `DateTime::parse_from_str` or `NaiveDateTime::parse_from_str` with `and_utc()` or `and_local_timezone()` instead
[INFO] [stdout]    --> src/util/movie_helper.rs:162:51
[INFO] [stdout]     |
[INFO] [stdout] 162 |                         if let Ok(max_date) = Utc.datetime_from_str(&release_date_max, "%Y-%m-%d") {
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `name` is never used
[INFO] [stdout]   --> src/model/chat_completion_request.rs:63:12
[INFO] [stdout]    |
[INFO] [stdout] 43 | impl MessageBuilder {
[INFO] [stdout]    | ------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 63 |     pub fn name(mut self, name: String) -> Self {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `OAIChoices` is never constructed
[INFO] [stdout]  --> src/model/chat_completion_response.rs:7:12
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct OAIChoices {
[INFO] [stdout]   |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple fields are never read
[INFO] [stdout]   --> src/model/chat_completion_response.rs:27:9
[INFO] [stdout]    |
[INFO] [stdout] 24 | pub struct ChatCompletionResponse {
[INFO] [stdout]    |            ---------------------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 27 |     pub id: Option<String>,
[INFO] [stdout]    |         ^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     pub object: Option<String>,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub created: Option<u64>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     pub model: Option<String>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     pub usage: Usage,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 41 |     pub system_fingerprint: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 42 |     pub headers: Option<HashMap<String, String>>,
[INFO] [stdout]    |         ^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ChatCompletionResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `encoding_format` is never used
[INFO] [stdout]   --> src/model/embedding_request_body.rs:47:12
[INFO] [stdout]    |
[INFO] [stdout] 26 | impl EmbeddingRequestBodyBuilder {
[INFO] [stdout]    | -------------------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 47 |     pub fn encoding_format(mut self, encoding_format: Option<String>) -> Self {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `builder` is never used
[INFO] [stdout]   --> src/model/movies/movie_criteria.rs:16:12
[INFO] [stdout]    |
[INFO] [stdout] 15 | impl MovieCriteria {
[INFO] [stdout]    | ------------------ associated function in this implementation
[INFO] [stdout] 16 |     pub fn builder() -> MovieCriteriaBuilder {
[INFO] [stdout]    |            ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `SortCriteria` is never constructed
[INFO] [stdout]   --> src/model/movies/movie_criteria.rs:22:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | pub struct SortCriteria {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `SortDirection` is never used
[INFO] [stdout]   --> src/model/movies/movie_criteria.rs:29:10
[INFO] [stdout]    |
[INFO] [stdout] 29 | pub enum SortDirection {
[INFO] [stdout]    |          ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Criteria` is never constructed
[INFO] [stdout]   --> src/model/movies/movie_criteria.rs:35:12
[INFO] [stdout]    |
[INFO] [stdout] 35 | pub struct Criteria {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `MovieCriteriaBuilder` is never constructed
[INFO] [stdout]   --> src/model/movies/movie_criteria.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 41 | pub struct MovieCriteriaBuilder {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/model/movies/movie_criteria.rs:53:12
[INFO] [stdout]     |
[INFO] [stdout]  52 | impl MovieCriteriaBuilder {
[INFO] [stdout]     | ------------------------- associated items in this implementation
[INFO] [stdout]  53 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  66 |     pub fn search(mut self, search: String) -> Self {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  71 |     pub fn genre(mut self, genre: String) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  76 |     pub fn mpaa(mut self, mpaa: String) -> Self {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] ...
[INFO] [stdout]  81 |     pub fn release_date_min(mut self, release_date_min: String) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  86 |     pub fn release_date_max(mut self, release_date_max: String) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  91 |     pub fn score_min(mut self, score_min: f32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  96 |     pub fn score_max(mut self, score_max: f32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn natural_language(mut self, natural_language: String) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn build(self) -> MovieCriteria {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 2.71s
[INFO] running `Command { std: "docker" "inspect" "9742e7389424813725219e70f0f6a940fdb4e728625b1e32119e09fb824dae82", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "9742e7389424813725219e70f0f6a940fdb4e728625b1e32119e09fb824dae82" "/opt/rustwide/cargo-home/bin/cargo" "+1.98.0-beta.1" "test" "--frozen", kill_on_drop: false }`
[INFO] [stderr] warning: unused imports: `RequestTool` and `ToolFunction`
[INFO] [stderr]  --> src/api/movies.rs:3:37
[INFO] [stderr]   |
[INFO] [stderr] 3 |     ChatCompletionRequest, Message, RequestTool, ResponseFormat, ResponseType::JsonObject,
[INFO] [stderr]   |                                     ^^^^^^^^^^^
[INFO] [stderr] 4 |     ResponseType::Text, ToolFunction,
[INFO] [stderr]   |                         ^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `ChatCompletionChoice`
[INFO] [stderr]  --> src/api/movies.rs:6:46
[INFO] [stderr]   |
[INFO] [stderr] 6 | use crate::model::chat_completion_response::{ChatCompletionChoice, ChatCompletionResponse};
[INFO] [stderr]   |                                              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `error`, `info`, and `warn`
[INFO] [stderr]   --> src/api/movies.rs:16:18
[INFO] [stderr]    |
[INFO] [stderr] 16 | use log::{debug, error, info, warn};
[INFO] [stderr]    |                  ^^^^^  ^^^^  ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused imports: `error`, `info`, and `warn`
[INFO] [stderr]  --> src/api/scraper.rs:7:18
[INFO] [stderr]   |
[INFO] [stderr] 7 | use log::{debug, error, info, warn};
[INFO] [stderr]   |                  ^^^^^  ^^^^  ^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `super::chat_completion_request::Message`
[INFO] [stderr]  --> src/model/chat_completion_response.rs:3:5
[INFO] [stderr]   |
[INFO] [stderr] 3 | use super::chat_completion_request::Message;
[INFO] [stderr]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: variant `user` should have an upper camel case name
[INFO] [stderr]   --> src/model/chat_completion_response.rs:47:5
[INFO] [stderr]    |
[INFO] [stderr] 47 |     user,
[INFO] [stderr]    |     ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `User`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(non_camel_case_types)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variant `system` should have an upper camel case name
[INFO] [stderr]   --> src/model/chat_completion_response.rs:48:5
[INFO] [stderr]    |
[INFO] [stderr] 48 |     system,
[INFO] [stderr]    |     ^^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `System`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `assistant` should have an upper camel case name
[INFO] [stderr]   --> src/model/chat_completion_response.rs:49:5
[INFO] [stderr]    |
[INFO] [stderr] 49 |     assistant,
[INFO] [stderr]    |     ^^^^^^^^^ help: convert the identifier to upper camel case: `Assistant`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `function` should have an upper camel case name
[INFO] [stderr]   --> src/model/chat_completion_response.rs:50:5
[INFO] [stderr]    |
[INFO] [stderr] 50 |     function,
[INFO] [stderr]    |     ^^^^^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Function`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `stop` should have an upper camel case name
[INFO] [stderr]   --> src/model/chat_completion_response.rs:71:5
[INFO] [stderr]    |
[INFO] [stderr] 71 |     stop,
[INFO] [stderr]    |     ^^^^ help: convert the identifier to upper camel case (notice the capitalization): `Stop`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `length` should have an upper camel case name
[INFO] [stderr]   --> src/model/chat_completion_response.rs:72:5
[INFO] [stderr]    |
[INFO] [stderr] 72 |     length,
[INFO] [stderr]    |     ^^^^^^ help: convert the identifier to upper camel case: `Length`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `content_filter` should have an upper camel case name
[INFO] [stderr]   --> src/model/chat_completion_response.rs:73:5
[INFO] [stderr]    |
[INFO] [stderr] 73 |     content_filter,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^ help: convert the identifier to upper camel case: `ContentFilter`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `tool_calls` should have an upper camel case name
[INFO] [stderr]   --> src/model/chat_completion_response.rs:74:5
[INFO] [stderr]    |
[INFO] [stderr] 74 |     tool_calls,
[INFO] [stderr]    |     ^^^^^^^^^^ help: convert the identifier to upper camel case: `ToolCalls`
[INFO] [stderr] 
[INFO] [stderr] warning: variant `null` should have an upper camel case name
[INFO] [stderr]   --> src/model/chat_completion_response.rs:75:5
[INFO] [stderr]    |
[INFO] [stderr] 75 |     null,
[INFO] [stderr]    |     ^^^^ help: convert the identifier to upper camel case: `Null`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/api/movies.rs:306:17
[INFO] [stderr]     |
[INFO] [stderr] 306 |             let mut possible_movies = cache.lock().unwrap().top_movies.lock().unwrap().to_vec();
[INFO] [stderr]     |                 ----^^^^^^^^^^^^^^^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `chrono::TimeZone::datetime_from_str`: use `DateTime::parse_from_str` or `NaiveDateTime::parse_from_str` with `and_utc()` or `and_local_timezone()` instead
[INFO] [stderr]    --> src/util/movie_helper.rs:128:46
[INFO] [stderr]     |
[INFO] [stderr] 128 |                 if let Ok(parsed_date) = Utc.datetime_from_str(&m.release_date, "%Y-%m-%d") {
[INFO] [stderr]     |                                              ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `chrono::TimeZone::datetime_from_str`: use `DateTime::parse_from_str` or `NaiveDateTime::parse_from_str` with `and_utc()` or `and_local_timezone()` instead
[INFO] [stderr]    --> src/util/movie_helper.rs:131:47
[INFO] [stderr]     |
[INFO] [stderr] 131 |                     if let Ok(min_date) = Utc.datetime_from_str(&release_date_min, "%Y-%m-%d") {
[INFO] [stderr]     |                                               ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `chrono::TimeZone::datetime_from_str`: use `DateTime::parse_from_str` or `NaiveDateTime::parse_from_str` with `and_utc()` or `and_local_timezone()` instead
[INFO] [stderr]    --> src/util/movie_helper.rs:143:29
[INFO] [stderr]     |
[INFO] [stderr] 143 |                         Utc.datetime_from_str(&m.release_date, "%Y-%m-%d")
[INFO] [stderr]     |                             ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `chrono::TimeZone::datetime_from_str`: use `DateTime::parse_from_str` or `NaiveDateTime::parse_from_str` with `and_utc()` or `and_local_timezone()` instead
[INFO] [stderr]    --> src/util/movie_helper.rs:160:31
[INFO] [stderr]     |
[INFO] [stderr] 160 |                 |m| match Utc.datetime_from_str(&m.release_date, "%Y-%m-%d") {
[INFO] [stderr]     |                               ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `chrono::TimeZone::datetime_from_str`: use `DateTime::parse_from_str` or `NaiveDateTime::parse_from_str` with `and_utc()` or `and_local_timezone()` instead
[INFO] [stderr]    --> src/util/movie_helper.rs:162:51
[INFO] [stderr]     |
[INFO] [stderr] 162 |                         if let Ok(max_date) = Utc.datetime_from_str(&release_date_max, "%Y-%m-%d") {
[INFO] [stderr]     |                                                   ^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: method `name` is never used
[INFO] [stderr]   --> src/model/chat_completion_request.rs:63:12
[INFO] [stderr]    |
[INFO] [stderr] 43 | impl MessageBuilder {
[INFO] [stderr]    | ------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 63 |     pub fn name(mut self, name: String) -> Self {
[INFO] [stderr]    |            ^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stderr] 
[INFO] [stderr] warning: struct `OAIChoices` is never constructed
[INFO] [stderr]  --> src/model/chat_completion_response.rs:7:12
[INFO] [stderr]   |
[INFO] [stderr] 7 | pub struct OAIChoices {
[INFO] [stderr]   |            ^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple fields are never read
[INFO] [stderr]   --> src/model/chat_completion_response.rs:27:9
[INFO] [stderr]    |
[INFO] [stderr] 24 | pub struct ChatCompletionResponse {
[INFO] [stderr]    |            ---------------------- fields in this struct
[INFO] [stderr] ...
[INFO] [stderr] 27 |     pub id: Option<String>,
[INFO] [stderr]    |         ^^
[INFO] [stderr] ...
[INFO] [stderr] 30 |     pub object: Option<String>,
[INFO] [stderr]    |         ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 33 |     pub created: Option<u64>,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 36 |     pub model: Option<String>,
[INFO] [stderr]    |         ^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 40 |     pub usage: Usage,
[INFO] [stderr]    |         ^^^^^
[INFO] [stderr] 41 |     pub system_fingerprint: Option<String>,
[INFO] [stderr]    |         ^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 42 |     pub headers: Option<HashMap<String, String>>,
[INFO] [stderr]    |         ^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `ChatCompletionResponse` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] 
[INFO] [stderr] warning: method `encoding_format` is never used
[INFO] [stderr]   --> src/model/embedding_request_body.rs:47:12
[INFO] [stderr]    |
[INFO] [stderr] 26 | impl EmbeddingRequestBodyBuilder {
[INFO] [stderr]    | -------------------------------- method in this implementation
[INFO] [stderr] ...
[INFO] [stderr] 47 |     pub fn encoding_format(mut self, encoding_format: Option<String>) -> Self {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function `builder` is never used
[INFO] [stderr]   --> src/model/movies/movie_criteria.rs:16:12
[INFO] [stderr]    |
[INFO] [stderr] 15 | impl MovieCriteria {
[INFO] [stderr]    | ------------------ associated function in this implementation
[INFO] [stderr] 16 |     pub fn builder() -> MovieCriteriaBuilder {
[INFO] [stderr]    |            ^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `SortCriteria` is never constructed
[INFO] [stderr]   --> src/model/movies/movie_criteria.rs:22:12
[INFO] [stderr]    |
[INFO] [stderr] 22 | pub struct SortCriteria {
[INFO] [stderr]    |            ^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: enum `SortDirection` is never used
[INFO] [stderr]   --> src/model/movies/movie_criteria.rs:29:10
[INFO] [stderr]    |
[INFO] [stderr] 29 | pub enum SortDirection {
[INFO] [stderr]    |          ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `Criteria` is never constructed
[INFO] [stderr]   --> src/model/movies/movie_criteria.rs:35:12
[INFO] [stderr]    |
[INFO] [stderr] 35 | pub struct Criteria {
[INFO] [stderr]    |            ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: struct `MovieCriteriaBuilder` is never constructed
[INFO] [stderr]   --> src/model/movies/movie_criteria.rs:41:12
[INFO] [stderr]    |
[INFO] [stderr] 41 | pub struct MovieCriteriaBuilder {
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: multiple associated items are never used
[INFO] [stderr]    --> src/model/movies/movie_criteria.rs:53:12
[INFO] [stderr]     |
[INFO] [stderr]  52 | impl MovieCriteriaBuilder {
[INFO] [stderr]     | ------------------------- associated items in this implementation
[INFO] [stderr]  53 |     pub fn new() -> Self {
[INFO] [stderr]     |            ^^^
[INFO] [stderr] ...
[INFO] [stderr]  66 |     pub fn search(mut self, search: String) -> Self {
[INFO] [stderr]     |            ^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  71 |     pub fn genre(mut self, genre: String) -> Self {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  76 |     pub fn mpaa(mut self, mpaa: String) -> Self {
[INFO] [stderr]     |            ^^^^
[INFO] [stderr] ...
[INFO] [stderr]  81 |     pub fn release_date_min(mut self, release_date_min: String) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  86 |     pub fn release_date_max(mut self, release_date_max: String) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  91 |     pub fn score_min(mut self, score_min: f32) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr]  96 |     pub fn score_max(mut self, score_max: f32) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 101 |     pub fn natural_language(mut self, natural_language: String) -> Self {
[INFO] [stderr]     |            ^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 106 |     pub fn build(self) -> MovieCriteria {
[INFO] [stderr]     |            ^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: `month-of-ai-api` (bin "month-of-ai-api" test) generated 30 warnings (run `cargo fix --bin "month-of-ai-api" -p month-of-ai-api --tests` to apply 6 suggestions)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.31s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/month_of_ai_api-950e29340f5f492a)
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "9742e7389424813725219e70f0f6a940fdb4e728625b1e32119e09fb824dae82", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9742e7389424813725219e70f0f6a940fdb4e728625b1e32119e09fb824dae82", kill_on_drop: false }`
[INFO] [stdout] 9742e7389424813725219e70f0f6a940fdb4e728625b1e32119e09fb824dae82
