[INFO] cloning repository https://github.com/dbradf/codecrafters-claude-code-rust
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/dbradf/codecrafters-claude-code-rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdbradf%2Fcodecrafters-claude-code-rust", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdbradf%2Fcodecrafters-claude-code-rust'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 228f2e8c2fa1f61d1776994afc7db95eb33274e9
[INFO] checking dbradf/codecrafters-claude-code-rust against a7c37f9f0ee5e93396106e9de20f4a86b4154e63 for pr-129249-4
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fdbradf%2Fcodecrafters-claude-code-rust" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/dbradf/codecrafters-claude-code-rust
[INFO] finished tweaking git repo https://github.com/dbradf/codecrafters-claude-code-rust
[INFO] tweaked toml for git repo https://github.com/dbradf/codecrafters-claude-code-rust written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/dbradf/codecrafters-claude-code-rust on toolchain a7c37f9f0ee5e93396106e9de20f4a86b4154e63
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+a7c37f9f0ee5e93396106e9de20f4a86b4154e63" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/dbradf/codecrafters-claude-code-rust 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" "+a7c37f9f0ee5e93396106e9de20f4a86b4154e63" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded markdown-frontmatter v0.5.1
[INFO] [stderr]   Downloaded toml_datetime v1.1.2+spec-1.1.0
[INFO] [stderr]   Downloaded rstest v0.26.1
[INFO] [stderr]   Downloaded toml v1.1.8+spec-1.1.0
[INFO] [stderr]   Downloaded secrecy v0.10.3
[INFO] [stderr]   Downloaded defmt-parser v1.1.0
[INFO] [stderr]   Downloaded reqwest-eventsource v0.6.0
[INFO] [stderr]   Downloaded jiff-static v0.2.38
[INFO] [stderr]   Downloaded rstest_macros v0.26.1
[INFO] [stderr]   Downloaded defmt-macros v1.2.0
[INFO] [stderr]   Downloaded defmt v1.2.0
[INFO] [stderr]   Downloaded clap v4.5.55
[INFO] [stderr]   Downloaded async-openai-macros v0.1.1
[INFO] [stderr]   Downloaded zerocopy-derive v0.8.35
[INFO] [stderr]   Downloaded async-openai v0.32.4
[INFO] [stderr]   Downloaded clap_builder v4.5.55
[INFO] [stderr]   Downloaded zerocopy v0.8.35
[INFO] [stderr]   Downloaded jiff v0.2.38
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 54984acae414b8f4cfa23672300aebab7c68f06a81972e1bd14663021263cfea
[INFO] running `Command { std: "docker" "start" "54984acae414b8f4cfa23672300aebab7c68f06a81972e1bd14663021263cfea", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "54984acae414b8f4cfa23672300aebab7c68f06a81972e1bd14663021263cfea", 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" "54984acae414b8f4cfa23672300aebab7c68f06a81972e1bd14663021263cfea" "/opt/rustwide/cargo-home/bin/cargo" "+a7c37f9f0ee5e93396106e9de20f4a86b4154e63" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "54984acae414b8f4cfa23672300aebab7c68f06a81972e1bd14663021263cfea", 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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "54984acae414b8f4cfa23672300aebab7c68f06a81972e1bd14663021263cfea" "/opt/rustwide/cargo-home/bin/cargo" "+a7c37f9f0ee5e93396106e9de20f4a86b4154e63" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr]     Checking once_cell v1.21.3
[INFO] [stderr]    Compiling zerocopy v0.8.35
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]    Compiling rustls v0.23.36
[INFO] [stderr]    Compiling zmij v1.0.17
[INFO] [stderr]     Checking utf8parse v0.2.2
[INFO] [stderr]     Checking tokio v1.49.0
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]    Compiling unicase v2.9.0
[INFO] [stderr]     Checking anstyle-query v1.1.5
[INFO] [stderr]     Checking anstyle v1.0.13
[INFO] [stderr]     Checking colorchoice v1.0.4
[INFO] [stderr]     Checking log v0.4.34
[INFO] [stderr]     Checking is_terminal_polyfill v1.70.2
[INFO] [stderr]     Checking aho-corasick v1.1.4
[INFO] [stderr]     Checking tracing-core v0.1.36
[INFO] [stderr]    Compiling winnow v1.0.4
[INFO] [stderr]    Compiling memchr v2.7.6
[INFO] [stderr]     Checking nom v7.1.3
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking anstyle-parse v0.2.7
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]     Checking ring v0.17.14
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]    Compiling regex-syntax v0.8.11
[INFO] [stderr]     Checking hashbrown v0.16.1
[INFO] [stderr]     Checking toml_parser v1.1.5+spec-1.1.0
[INFO] [stderr]     Checking anstream v0.6.21
[INFO] [stderr]     Checking serde_json v1.0.149
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]    Compiling rstest_macros v0.26.1
[INFO] [stderr]     Checking anstyle-parse v1.0.0
[INFO] [stderr]     Checking serde_spanned v1.1.2
[INFO] [stderr]     Checking toml_datetime v1.1.2+spec-1.1.0
[INFO] [stderr]     Checking instant v0.1.13
[INFO] [stderr]     Checking toml_writer v1.1.3+spec-1.1.0
[INFO] [stderr]     Checking clap_lex v0.7.7
[INFO] [stderr]     Checking unsafe-libyaml v0.2.11
[INFO] [stderr]     Checking jiff-core v0.1.1
[INFO] [stderr]    Compiling toml_edit v0.23.10+spec-1.0.0
[INFO] [stderr]     Checking toml v1.1.8+spec-1.1.0
[INFO] [stderr]     Checking clap_builder v4.5.55
[INFO] [stderr]     Checking indexmap v2.13.0
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking anstream v1.0.0
[INFO] [stderr]     Checking derive_builder v0.20.2
[INFO] [stderr]     Checking secrecy v0.10.3
[INFO] [stderr]     Checking regex-automata v0.4.18
[INFO] [stderr]     Checking rustls-webpki v0.103.9
[INFO] [stderr]    Compiling proc-macro-crate v3.4.0
[INFO] [stderr]     Checking jiff v0.2.38
[INFO] [stderr]    Compiling async-openai-macros v0.1.1
[INFO] [stderr]    Compiling glob v0.3.3
[INFO] [stderr]     Checking eventsource-stream v0.2.3
[INFO] [stderr]     Checking serde_yaml v0.9.34+deprecated
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]     Checking regex v1.13.1
[INFO] [stderr]     Checking env_filter v2.0.0
[INFO] [stderr]     Checking clap v4.5.55
[INFO] [stderr]     Checking markdown-frontmatter v0.5.1
[INFO] [stderr]     Checking env_logger v0.11.11
[INFO] [stderr]     Checking hyper v1.8.1
[INFO] [stderr]     Checking tower v0.5.3
[INFO] [stderr]     Checking tokio-util v0.7.18
[INFO] [stderr]     Checking tokio-stream v0.1.18
[INFO] [stderr]     Checking tower-http v0.6.8
[INFO] [stderr]     Checking hyper-util v0.1.19
[INFO] [stderr]     Checking tokio-rustls v0.26.4
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking hyper-rustls v0.27.7
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking reqwest v0.12.28
[INFO] [stderr]     Checking rand v0.9.2
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking reqwest-eventsource v0.6.0
[INFO] [stderr]     Checking backoff v0.4.0
[INFO] [stderr]     Checking async-openai v0.32.4
[INFO] [stderr]     Checking rstest v0.26.1
[INFO] [stderr]     Checking codecrafters-claude-code v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `info`
[INFO] [stdout]  --> src/main.rs:4:25
[INFO] [stdout]   |
[INFO] [stdout] 4 | use log::{debug, error, info};
[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 imports: `Command`, `fs`, and `path::PathBuf`
[INFO] [stdout]   --> src/main.rs:9:10
[INFO] [stdout]    |
[INFO] [stdout]  9 |     env, fs,
[INFO] [stdout]    |          ^^
[INFO] [stdout] 10 |     path::PathBuf,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 11 |     process::{self, Command},
[INFO] [stdout]    |                     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `info`
[INFO] [stdout]  --> src/main.rs:4:25
[INFO] [stdout]   |
[INFO] [stdout] 4 | use log::{debug, error, info};
[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 imports: `Command`, `fs`, and `path::PathBuf`
[INFO] [stdout]   --> src/main.rs:9:10
[INFO] [stdout]    |
[INFO] [stdout]  9 |     env, fs,
[INFO] [stdout]    |          ^^
[INFO] [stdout] 10 |     path::PathBuf,
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 11 |     process::{self, Command},
[INFO] [stdout]    |                     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]   --> src/main.rs:90:12
[INFO] [stdout]    |
[INFO] [stdout] 90 |         if let message_str = &response["choices"][0]["message"] {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]    = help: consider replacing the `if let` with a `let`
[INFO] [stdout]    = note: `#[warn(irrefutable_let_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `DeveloperContent` is more private than the item `ChatMessage::Developer::content`
[INFO] [stdout]    --> src/chat_message.rs:17:9
[INFO] [stdout]     |
[INFO] [stdout]  17 |         content: DeveloperContent,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^ field `ChatMessage::Developer::content` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `DeveloperContent` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/chat_message.rs:147:1
[INFO] [stdout]     |
[INFO] [stdout] 147 | enum DeveloperContent {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `AssistantContent` is more private than the item `ChatMessage::Assistant::content`
[INFO] [stdout]    --> src/chat_message.rs:23:9
[INFO] [stdout]     |
[INFO] [stdout]  23 |         content: Option<AssistantContent>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `ChatMessage::Assistant::content` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `AssistantContent` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/chat_message.rs:122:1
[INFO] [stdout]     |
[INFO] [stdout] 122 | enum AssistantContent {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `ReasoningDetails` is more private than the item `ChatMessage::Assistant::reasoning_details`
[INFO] [stdout]   --> src/chat_message.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |         reasoning_details: Option<ReasoningDetails>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `ChatMessage::Assistant::reasoning_details` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `ReasoningDetails` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/chat_message.rs:84:1
[INFO] [stdout]    |
[INFO] [stdout] 84 | enum ReasoningDetails {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `chat_message::ImageUrl` is more private than the item `ChatMessage::Assistant::images`
[INFO] [stdout]    --> src/chat_message.rs:35:9
[INFO] [stdout]     |
[INFO] [stdout]  35 |         images: Option<ImageUrl>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^ field `ChatMessage::Assistant::images` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `chat_message::ImageUrl` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/chat_message.rs:195:1
[INFO] [stdout]     |
[INFO] [stdout] 195 | struct ImageUrl {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `ToolResponseMessageContent` is more private than the item `ToolContent::ToolResponseMessageContent::0`
[INFO] [stdout]   --> src/chat_message.rs:47:32
[INFO] [stdout]    |
[INFO] [stdout] 47 |     ToolResponseMessageContent(ToolResponseMessageContent),
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^ field `ToolContent::ToolResponseMessageContent::0` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `ToolResponseMessageContent` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/chat_message.rs:52:1
[INFO] [stdout]    |
[INFO] [stdout] 52 | enum ToolResponseMessageContent {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `UserMessageContent` is more private than the item `UserContent::UserMessageContent1::0`
[INFO] [stdout]    --> src/chat_message.rs:162:25
[INFO] [stdout]     |
[INFO] [stdout] 162 |     UserMessageContent1(UserMessageContent),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^ field `UserContent::UserMessageContent1::0` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `UserMessageContent` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/chat_message.rs:167:1
[INFO] [stdout]     |
[INFO] [stdout] 167 | enum UserMessageContent {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `CacheControl` is more private than the item `SystemContent::SystemMessageContent1::cache_control`
[INFO] [stdout]    --> src/chat_message.rs:227:9
[INFO] [stdout]     |
[INFO] [stdout] 227 |         cache_control: Option<CacheControl>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `SystemContent::SystemMessageContent1::cache_control` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `CacheControl` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/chat_message.rs:232:1
[INFO] [stdout]     |
[INFO] [stdout] 232 | struct CacheControl {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ToolContent` is never used
[INFO] [stdout]   --> src/chat_message.rs:45:10
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub enum ToolContent {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ToolResponseMessageContent` is never used
[INFO] [stdout]   --> src/chat_message.rs:52:6
[INFO] [stdout]    |
[INFO] [stdout] 52 | enum ToolResponseMessageContent {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UserContentText` is never constructed
[INFO] [stdout]    --> src/chat_message.rs:210:8
[INFO] [stdout]     |
[INFO] [stdout] 210 | struct UserContentText {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: irrefutable `if let` pattern
[INFO] [stdout]   --> src/main.rs:90:12
[INFO] [stdout]    |
[INFO] [stdout] 90 |         if let message_str = &response["choices"][0]["message"] {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this pattern will always match, so the `if let` is useless
[INFO] [stdout]    = help: consider replacing the `if let` with a `let`
[INFO] [stdout]    = note: `#[warn(irrefutable_let_patterns)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `DeveloperContent` is more private than the item `chat_message::ChatMessage::Developer::content`
[INFO] [stdout]    --> src/chat_message.rs:17:9
[INFO] [stdout]     |
[INFO] [stdout]  17 |         content: DeveloperContent,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^ field `chat_message::ChatMessage::Developer::content` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `DeveloperContent` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/chat_message.rs:147:1
[INFO] [stdout]     |
[INFO] [stdout] 147 | enum DeveloperContent {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: `#[warn(private_interfaces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `AssistantContent` is more private than the item `chat_message::ChatMessage::Assistant::content`
[INFO] [stdout]    --> src/chat_message.rs:23:9
[INFO] [stdout]     |
[INFO] [stdout]  23 |         content: Option<AssistantContent>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `chat_message::ChatMessage::Assistant::content` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `AssistantContent` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/chat_message.rs:122:1
[INFO] [stdout]     |
[INFO] [stdout] 122 | enum AssistantContent {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `ReasoningDetails` is more private than the item `chat_message::ChatMessage::Assistant::reasoning_details`
[INFO] [stdout]   --> src/chat_message.rs:33:9
[INFO] [stdout]    |
[INFO] [stdout] 33 |         reasoning_details: Option<ReasoningDetails>,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `chat_message::ChatMessage::Assistant::reasoning_details` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `ReasoningDetails` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/chat_message.rs:84:1
[INFO] [stdout]    |
[INFO] [stdout] 84 | enum ReasoningDetails {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `chat_message::ImageUrl` is more private than the item `chat_message::ChatMessage::Assistant::images`
[INFO] [stdout]    --> src/chat_message.rs:35:9
[INFO] [stdout]     |
[INFO] [stdout]  35 |         images: Option<ImageUrl>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^ field `chat_message::ChatMessage::Assistant::images` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `chat_message::ImageUrl` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/chat_message.rs:195:1
[INFO] [stdout]     |
[INFO] [stdout] 195 | struct ImageUrl {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `ToolResponseMessageContent` is more private than the item `ToolContent::ToolResponseMessageContent::0`
[INFO] [stdout]   --> src/chat_message.rs:47:32
[INFO] [stdout]    |
[INFO] [stdout] 47 |     ToolResponseMessageContent(ToolResponseMessageContent),
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^ field `ToolContent::ToolResponseMessageContent::0` is reachable at visibility `pub(crate)`
[INFO] [stdout]    |
[INFO] [stdout] note: but type `ToolResponseMessageContent` is only usable at visibility `pub(self)`
[INFO] [stdout]   --> src/chat_message.rs:52:1
[INFO] [stdout]    |
[INFO] [stdout] 52 | enum ToolResponseMessageContent {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `UserMessageContent` is more private than the item `UserContent::UserMessageContent1::0`
[INFO] [stdout]    --> src/chat_message.rs:162:25
[INFO] [stdout]     |
[INFO] [stdout] 162 |     UserMessageContent1(UserMessageContent),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^ field `UserContent::UserMessageContent1::0` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `UserMessageContent` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/chat_message.rs:167:1
[INFO] [stdout]     |
[INFO] [stdout] 167 | enum UserMessageContent {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: type `chat_message::CacheControl` is more private than the item `chat_message::SystemContent::SystemMessageContent1::cache_control`
[INFO] [stdout]    --> src/chat_message.rs:227:9
[INFO] [stdout]     |
[INFO] [stdout] 227 |         cache_control: Option<CacheControl>,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `chat_message::SystemContent::SystemMessageContent1::cache_control` is reachable at visibility `pub(crate)`
[INFO] [stdout]     |
[INFO] [stdout] note: but type `chat_message::CacheControl` is only usable at visibility `pub(self)`
[INFO] [stdout]    --> src/chat_message.rs:232:1
[INFO] [stdout]     |
[INFO] [stdout] 232 | struct CacheControl {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ToolContent` is never used
[INFO] [stdout]   --> src/chat_message.rs:45:10
[INFO] [stdout]    |
[INFO] [stdout] 45 | pub enum ToolContent {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `ToolResponseMessageContent` is never used
[INFO] [stdout]   --> src/chat_message.rs:52:6
[INFO] [stdout]    |
[INFO] [stdout] 52 | enum ToolResponseMessageContent {
[INFO] [stdout]    |      ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `UserContentText` is never constructed
[INFO] [stdout]    --> src/chat_message.rs:210:8
[INFO] [stdout]     |
[INFO] [stdout] 210 | struct UserContentText {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 34.41s
[INFO] running `Command { std: "docker" "inspect" "54984acae414b8f4cfa23672300aebab7c68f06a81972e1bd14663021263cfea", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "54984acae414b8f4cfa23672300aebab7c68f06a81972e1bd14663021263cfea", kill_on_drop: false }`
[INFO] [stdout] 54984acae414b8f4cfa23672300aebab7c68f06a81972e1bd14663021263cfea
