[INFO] fetching crate api_openai_compatible 0.5.1...
[INFO] documenting api_openai_compatible-0.5.1 against da3f5c31e5535b3dc210067de660a45784ae1e9c for pr-162169
[INFO] extracting crate api_openai_compatible 0.5.1 into /workspace/builds/worker-3-tc2/source
[INFO] started tweaking crates.io crate api_openai_compatible 0.5.1
[INFO] removed 0 missing tests
[INFO] finished tweaking crates.io crate api_openai_compatible 0.5.1
[INFO] tweaked toml for crates.io crate api_openai_compatible 0.5.1 written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate api_openai_compatible 0.5.1 on toolchain da3f5c31e5535b3dc210067de660a45784ae1e9c
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+da3f5c31e5535b3dc210067de660a45784ae1e9c" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate api_openai_compatible 0.5.1 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" "+da3f5c31e5535b3dc210067de660a45784ae1e9c" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: `lints.rust.unsafe-code` is deprecated in favor of `lints.rust.unsafe_code` and will not work in a future edition
[INFO] [stderr] warning: `api_openai_compatible` (manifest) generated 1 warning
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] a2641cdc32420ba4fc34013982d8f8d3b39e9005377f58b70539f285b4644d4f
[INFO] running `Command { std: "docker" "start" "a2641cdc32420ba4fc34013982d8f8d3b39e9005377f58b70539f285b4644d4f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a2641cdc32420ba4fc34013982d8f8d3b39e9005377f58b70539f285b4644d4f", 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" "a2641cdc32420ba4fc34013982d8f8d3b39e9005377f58b70539f285b4644d4f" "/opt/rustwide/cargo-home/bin/cargo" "+da3f5c31e5535b3dc210067de660a45784ae1e9c" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a2641cdc32420ba4fc34013982d8f8d3b39e9005377f58b70539f285b4644d4f", 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" "a2641cdc32420ba4fc34013982d8f8d3b39e9005377f58b70539f285b4644d4f" "/opt/rustwide/cargo-home/bin/cargo" "+da3f5c31e5535b3dc210067de660a45784ae1e9c" "doc" "--frozen" "--no-deps" "--document-private-items" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: Cargo.toml: `lints.rust.unsafe-code` is deprecated in favor of `lints.rust.unsafe_code` and will not work in a future edition
[INFO] [stderr] warning: `api_openai_compatible` (manifest) generated 1 warning
[INFO] [stderr]    Compiling konst_macro_rules v0.2.19
[INFO] [stderr]    Compiling either v1.16.0
[INFO] [stderr]    Compiling convert_case v0.6.0
[INFO] [stderr]    Compiling component_model_types v0.56.0
[INFO] [stderr]    Compiling clone_dyn_types v0.50.0
[INFO] [stderr]    Compiling interval_adapter v0.44.0
[INFO] [stderr]    Compiling derive_tools v0.68.0
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]     Checking tokio v1.52.3
[INFO] [stderr]    Compiling collection_tools v0.67.0
[INFO] [stderr]    Compiling former_types v2.40.0
[INFO] [stderr]    Compiling konst v0.2.20
[INFO] [stderr]    Compiling itertools v0.11.0
[INFO] [stderr]    Compiling const_format v0.2.36
[INFO] [stderr]     Checking hyper v1.10.1
[INFO] [stderr]     Checking tower v0.5.3
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling macro_tools v0.87.0
[INFO] [stderr]     Checking hyper-util v0.1.20
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling displaydoc v0.2.6
[INFO] [stderr]    Compiling derive_more-impl v1.0.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling derive_tools_meta v0.65.0
[INFO] [stderr]    Compiling former_meta v2.45.0
[INFO] [stderr]    Compiling derive_more v1.0.0
[INFO] [stderr]     Checking zerofrom v0.1.8
[INFO] [stderr]     Checking yoke v0.8.3
[INFO] [stderr]    Compiling mod_interface_meta v0.62.0
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking zerotrie v0.2.4
[INFO] [stderr]     Checking error_tools v0.40.0
[INFO] [stderr]     Checking zerovec v0.11.6
[INFO] [stderr]     Checking mod_interface v0.64.0
[INFO] [stderr]     Checking tinystr v0.8.3
[INFO] [stderr]     Checking potential_utf v0.1.5
[INFO] [stderr]     Checking icu_collections v2.2.0
[INFO] [stderr]     Checking icu_locale_core v2.2.0
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking icu_provider v2.2.0
[INFO] [stderr]     Checking former v2.48.0
[INFO] [stderr]     Checking icu_properties v2.2.0
[INFO] [stderr]     Checking icu_normalizer v2.2.0
[INFO] [stderr]     Checking idna_adapter v1.2.2
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking tower-http v0.6.11
[INFO] [stderr]     Checking reqwest v0.13.4
[INFO] [stderr]  Documenting api_openai_compatible v0.5.1 (/opt/rustwide/workdir)
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/components/chat.rs:1:1
[INFO] [stdout]     |
[INFO] [stdout]   1 | / //! Wire types for `OpenAI` chat completion requests and responses.
[INFO] [stdout]   2 | | //!
[INFO] [stdout]   3 | | //! These types serialise to and deserialise from the JSON shapes described in
[INFO] [stdout]   4 | | //! the `OpenAI` chat completions API reference. Absent optional fields are
[INFO] [stdout] ...   |
[INFO] [stdout] 435 | |   };
[INFO] [stdout] 436 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near ` Chat completion request, response, and message types.`
[INFO] [stdout]     = help: ends near `Wire types for `OpenAI` chat completion requests and responses.`
[INFO] [stdout]     = note: `#[deny(rustdoc::unportable_markdown)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/components/streaming.rs:1:1
[INFO] [stdout]    |
[INFO] [stdout]  1 | / //! Wire types for `OpenAI` Server-Sent Events streaming completions.
[INFO] [stdout]  2 | | //!
[INFO] [stdout]  3 | | //! These types represent the incremental chunks delivered over a streaming
[INFO] [stdout]  4 | | //! chat completion response. Each chunk carries partial content via a `Delta`.
[INFO] [stdout] ...  |
[INFO] [stdout] 70 | |   };
[INFO] [stdout] 71 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near ` Server-Sent Events streaming types.`
[INFO] [stdout]    = help: ends near `Wire types for `OpenAI` Server-Sent Events streaming completions.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/components/mod.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 |   /// Chat completion request, response, and message types.
[INFO] [stdout]    |       ^ starts here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: ends near `Role of a participant in a chat conversation.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/components/chat.rs:59:3
[INFO] [stdout]    |
[INFO] [stdout] 59 | /   pub struct ToolCall
[INFO] [stdout] 60 | |   {
[INFO] [stdout] 61 | |     /// Unique identifier for this invocation (used to correlate tool results).
[INFO] [stdout] 62 | |     pub id : String,
[INFO] [stdout] ...  |
[INFO] [stdout] 69 | |     pub function : FunctionCall,
[INFO] [stdout] 70 | |   }
[INFO] [stdout]    | |___^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near ` Chat completion request, response, and message types.`
[INFO] [stdout]    = help: ends near `A function invocation requested by the assistant.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/components/mod.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 |   /// Chat completion request, response, and message types.
[INFO] [stdout]    |       ^ starts here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: ends near `Name and arguments for a specific function invocation.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/components/mod.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 |   /// Chat completion request, response, and message types.
[INFO] [stdout]    |       ^ starts here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: ends near `A single message in a chat conversation.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/components/mod.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 |   /// Chat completion request, response, and message types.
[INFO] [stdout]    |       ^ starts here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: ends near `A function tool definition passed in the `tools` array of a request.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/components/mod.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 |   /// Chat completion request, response, and message types.
[INFO] [stdout]    |       ^ starts here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: ends near `Function specification (name, description, JSON Schema parameters).`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/components/mod.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 |   /// Chat completion request, response, and message types.
[INFO] [stdout]    |       ^ starts here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: ends near `Token usage statistics returned in every completion response.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/components/chat.rs:342:3
[INFO] [stdout]     |
[INFO] [stdout] 342 | /   pub struct ChatCompletionRequest
[INFO] [stdout] 343 | |   {
[INFO] [stdout] 344 | |     /// Model identifier (e.g. `"gpt-4o"`, `"grok-2-1212"`).
[INFO] [stdout] 345 | |     pub model : String,
[INFO] [stdout] ...   |
[INFO] [stdout] 376 | |     pub tools : Option< Vec< Tool > >,
[INFO] [stdout] 377 | |   }
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near ` Chat completion request, response, and message types.`
[INFO] [stdout]     = help: ends near `Request body for the `POST chat/completions` endpoint.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/components/mod.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 |   /// Chat completion request, response, and message types.
[INFO] [stdout]    |       ^ starts here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: ends near `Response body from the `POST chat/completions` endpoint.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/components/chat.rs:408:3
[INFO] [stdout]     |
[INFO] [stdout] 408 | /   pub struct Choice
[INFO] [stdout] 409 | |   {
[INFO] [stdout] 410 | |     /// Zero-based index of this choice.
[INFO] [stdout] 411 | |     pub index : u32,
[INFO] [stdout] ...   |
[INFO] [stdout] 417 | |     pub finish_reason : Option< String >,
[INFO] [stdout] 418 | |   }
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near ` Chat completion request, response, and message types.`
[INFO] [stdout]     = help: ends near `One completion alternative within a `ChatCompletionResponse`.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/components/streaming.rs:13:3
[INFO] [stdout]    |
[INFO] [stdout] 13 | /   pub struct ChatCompletionChunk
[INFO] [stdout] 14 | |   {
[INFO] [stdout] 15 | |     /// Opaque completion identifier (same across all chunks for one request).
[INFO] [stdout] 16 | |     pub id : String,
[INFO] [stdout] ...  |
[INFO] [stdout] 28 | |     pub choices : Vec< ChunkChoice >,
[INFO] [stdout] 29 | |   }
[INFO] [stdout]    | |___^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near ` Server-Sent Events streaming types.`
[INFO] [stdout]    = help: ends near `A single Server-Sent Events chunk from a streaming completion.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/components/streaming.rs:33:3
[INFO] [stdout]    |
[INFO] [stdout] 33 | /   pub struct ChunkChoice
[INFO] [stdout] 34 | |   {
[INFO] [stdout] 35 | |     /// Zero-based index.
[INFO] [stdout] 36 | |     pub index : u32,
[INFO] [stdout] ...  |
[INFO] [stdout] 42 | |     pub finish_reason : Option< String >,
[INFO] [stdout] 43 | |   }
[INFO] [stdout]    | |___^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near ` Server-Sent Events streaming types.`
[INFO] [stdout]    = help: ends near `One delta choice within a streaming chunk.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/components/streaming.rs:47:3
[INFO] [stdout]    |
[INFO] [stdout] 47 | /   pub struct Delta
[INFO] [stdout] 48 | |   {
[INFO] [stdout] 49 | |     /// Role — present only in the first chunk of a response.
[INFO] [stdout] 50 | |     #[ serde( skip_serializing_if = "Option::is_none" ) ]
[INFO] [stdout] ...  |
[INFO] [stdout] 59 | |     pub tool_calls : Option< Vec< ToolCall > >,
[INFO] [stdout] 60 | |   }
[INFO] [stdout]    | |___^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near ` Server-Sent Events streaming types.`
[INFO] [stdout]    = help: ends near `Partial message update delivered in a streaming chunk.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/components/chat.rs:27:3
[INFO] [stdout]    |
[INFO] [stdout] 27 | /   pub enum Role
[INFO] [stdout] 28 | |   {
[INFO] [stdout] 29 | |     /// System-level instructions provided before the conversation begins.
[INFO] [stdout] 30 | |     System,
[INFO] [stdout] ...  |
[INFO] [stdout] 47 | |     Other,
[INFO] [stdout] 48 | |   }
[INFO] [stdout]    | |___^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near ` Chat completion request, response, and message types.`
[INFO] [stdout]    = help: ends near `Role of a participant in a chat conversation.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/components/chat.rs:74:3
[INFO] [stdout]    |
[INFO] [stdout] 74 | /   pub struct FunctionCall
[INFO] [stdout] 75 | |   {
[INFO] [stdout] 76 | |     /// Registered function name.
[INFO] [stdout] 77 | |     pub name : String,
[INFO] [stdout] ...  |
[INFO] [stdout] 80 | |     pub arguments : String,
[INFO] [stdout] 81 | |   }
[INFO] [stdout]    | |___^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near ` Chat completion request, response, and message types.`
[INFO] [stdout]    = help: ends near `Name and arguments for a specific function invocation.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/components/chat.rs:104:3
[INFO] [stdout]     |
[INFO] [stdout] 104 | /   pub struct Message
[INFO] [stdout] 105 | |   {
[INFO] [stdout] 106 | |     /// Who sent this message.
[INFO] [stdout] 107 | |     pub role : Role,
[INFO] [stdout] ...   |
[INFO] [stdout] 119 | |     pub tool_call_id : Option< String >,
[INFO] [stdout] 120 | |   }
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near ` Chat completion request, response, and message types.`
[INFO] [stdout]     = help: ends near `A single message in a chat conversation.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/components/chat.rs:237:3
[INFO] [stdout]     |
[INFO] [stdout] 237 | /   pub struct Tool
[INFO] [stdout] 238 | |   {
[INFO] [stdout] 239 | |     /// Always `"function"` for function-type tools.
[INFO] [stdout] 240 | |     #[ serde( rename = "type" ) ]
[INFO] [stdout] ...   |
[INFO] [stdout] 244 | |     pub function : Function,
[INFO] [stdout] 245 | |   }
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near ` Chat completion request, response, and message types.`
[INFO] [stdout]     = help: ends near `A function tool definition passed in the `tools` array of a request.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/components/chat.rs:289:3
[INFO] [stdout]     |
[INFO] [stdout] 289 | /   pub struct Function
[INFO] [stdout] 290 | |   {
[INFO] [stdout] 291 | |     /// Registered function name.
[INFO] [stdout] 292 | |     pub name : String,
[INFO] [stdout] ...   |
[INFO] [stdout] 298 | |     pub parameters : serde_json::Value,
[INFO] [stdout] 299 | |   }
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near ` Chat completion request, response, and message types.`
[INFO] [stdout]     = help: ends near `Function specification (name, description, JSON Schema parameters).`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/components/chat.rs:307:3
[INFO] [stdout]     |
[INFO] [stdout] 307 | /   pub struct Usage
[INFO] [stdout] 308 | |   {
[INFO] [stdout] 309 | |     /// Number of tokens in the prompt (input).
[INFO] [stdout] 310 | |     pub prompt_tokens : u32,
[INFO] [stdout] ...   |
[INFO] [stdout] 316 | |     pub total_tokens : u32,
[INFO] [stdout] 317 | |   }
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near ` Chat completion request, response, and message types.`
[INFO] [stdout]     = help: ends near `Token usage statistics returned in every completion response.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/components/chat.rs:385:3
[INFO] [stdout]     |
[INFO] [stdout] 385 | /   pub struct ChatCompletionResponse
[INFO] [stdout] 386 | |   {
[INFO] [stdout] 387 | |     /// Opaque completion identifier (e.g. `"chatcmpl-abc123"`).
[INFO] [stdout] 388 | |     pub id : String,
[INFO] [stdout] ...   |
[INFO] [stdout] 403 | |     pub usage : Usage,
[INFO] [stdout] 404 | |   }
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near ` Chat completion request, response, and message types.`
[INFO] [stdout]     = help: ends near `Response body from the `POST chat/completions` endpoint.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: redundant explicit link target
[INFO] [stdout]   |
[INFO] [stdout]   = note: when a link's destination is not specified,
[INFO] [stdout]           the label is used to resolve intra-doc links
[INFO] [stdout]   = note: `#[warn(rustdoc::redundant_explicit_links)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/error.rs:1:1
[INFO] [stdout]    |
[INFO] [stdout]  1 | / //! Error type and result alias for OpenAI-compatible API operations.
[INFO] [stdout]  2 | |
[INFO] [stdout]  3 | | mod private
[INFO] [stdout] ...  |
[INFO] [stdout] 93 | |   };
[INFO] [stdout] 94 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near ` Error type and result alias.`
[INFO] [stdout]    = help: ends near `Error type and result alias for OpenAI-compatible API operations.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/components/mod.rs:1:1
[INFO] [stdout]    |
[INFO] [stdout]  1 | / //! OpenAI-compatible wire-type components.
[INFO] [stdout]  2 | | //!
[INFO] [stdout]  3 | | //! Re-exports all wire types for chat completions and optional streaming.
[INFO] [stdout] ...  |
[INFO] [stdout] 17 | |   layer streaming;
[INFO] [stdout] 18 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near ` Wire types for chat completion requests, responses, and streaming.`
[INFO] [stdout]    = help: ends near `OpenAI-compatible wire-type components.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/environment.rs:1:1
[INFO] [stdout]     |
[INFO] [stdout]   1 | / //! Environment configuration trait and default implementation.
[INFO] [stdout]   2 | | //!
[INFO] [stdout]   3 | | //! The [`OpenAiCompatEnvironment`] trait abstracts over credential sources and
[INFO] [stdout]   4 | | //! API endpoint configuration, enabling the same [`crate::Client`] to target
[INFO] [stdout] ...   |
[INFO] [stdout] 220 | |   };
[INFO] [stdout] 221 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near ` Environment configuration trait and default implementation.`
[INFO] [stdout]     = help: ends near `Environment configuration trait and default implementation.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/client.rs:1:1
[INFO] [stdout]     |
[INFO] [stdout]   1 | / //! Async HTTP client for OpenAI-compatible REST APIs.
[INFO] [stdout]   2 | | //!
[INFO] [stdout]   3 | | //! The [`Client`] is generic over an environment `E` so callers can supply
[INFO] [stdout]   4 | | //! different credential sources and base URLs without changing client code.
[INFO] [stdout] ...   |
[INFO] [stdout] 143 | |   };
[INFO] [stdout] 144 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near ` Async HTTP client.`
[INFO] [stdout]     = help: ends near `Async HTTP client for OpenAI-compatible REST APIs.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/sync_client.rs:1:1
[INFO] [stdout]    |
[INFO] [stdout]  1 | / //! Blocking wrapper around [`Client`][crate::Client] for synchronous contexts.
[INFO] [stdout]  2 | | //!
[INFO] [stdout]  3 | | //! Each [`SyncClient`] instance owns a `tokio::runtime::Runtime`. Prefer the
[INFO] [stdout]  4 | | //! async `Client` when possible; use `SyncClient` only for legacy or scripting
[INFO] [stdout] ...  |
[INFO] [stdout] 82 | |   };
[INFO] [stdout] 83 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near ` Blocking wrapper around the async client.`
[INFO] [stdout]    = help: ends near `Blocking wrapper around [`Client`][crate::Client] for synchronous contexts.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/error.rs:14:3
[INFO] [stdout]    |
[INFO] [stdout] 14 | /   pub enum OpenAiCompatError
[INFO] [stdout] 15 | |   {
[INFO] [stdout] 16 | |     /// Error body returned by the API (e.g. invalid model name).
[INFO] [stdout] 17 | |     #[ error( "API error : {0}" ) ]
[INFO] [stdout] ...  |
[INFO] [stdout] 42 | |     Environment( String ),
[INFO] [stdout] 43 | |   }
[INFO] [stdout]    | |___^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near ` Error type and result alias.`
[INFO] [stdout]    = help: ends near `Error variants for OpenAI-compatible API operations.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/lib.rs:29:7
[INFO] [stdout]    |
[INFO] [stdout] 29 |   /// Error type and result alias.
[INFO] [stdout]    |       ^ starts here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: ends near `Crate-level result type backed by a boxed dynamic error.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/lib.rs:32:7
[INFO] [stdout]    |
[INFO] [stdout] 32 |   /// Wire types for chat completion requests, responses, and streaming.
[INFO] [stdout]    |       ^ starts here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: ends near `Role of a participant in a chat conversation.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/components/chat.rs:59:3
[INFO] [stdout]    |
[INFO] [stdout] 59 | /   pub struct ToolCall
[INFO] [stdout] 60 | |   {
[INFO] [stdout] 61 | |     /// Unique identifier for this invocation (used to correlate tool results).
[INFO] [stdout] 62 | |     pub id : String,
[INFO] [stdout] ...  |
[INFO] [stdout] 69 | |     pub function : FunctionCall,
[INFO] [stdout] 70 | |   }
[INFO] [stdout]    | |___^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near ` Wire types for chat completion requests, responses, and streaming.`
[INFO] [stdout]    = help: ends near `A function invocation requested by the assistant.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/lib.rs:32:7
[INFO] [stdout]    |
[INFO] [stdout] 32 |   /// Wire types for chat completion requests, responses, and streaming.
[INFO] [stdout]    |       ^ starts here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: ends near `Name and arguments for a specific function invocation.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/components/chat.rs:104:3
[INFO] [stdout]     |
[INFO] [stdout] 104 | /   pub struct Message
[INFO] [stdout] 105 | |   {
[INFO] [stdout] 106 | |     /// Who sent this message.
[INFO] [stdout] 107 | |     pub role : Role,
[INFO] [stdout] ...   |
[INFO] [stdout] 119 | |     pub tool_call_id : Option< String >,
[INFO] [stdout] 120 | |   }
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near ` Wire types for chat completion requests, responses, and streaming.`
[INFO] [stdout]     = help: ends near `A single message in a chat conversation.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/lib.rs:32:7
[INFO] [stdout]    |
[INFO] [stdout] 32 |   /// Wire types for chat completion requests, responses, and streaming.
[INFO] [stdout]    |       ^ starts here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: ends near `A function tool definition passed in the `tools` array of a request.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/lib.rs:32:7
[INFO] [stdout]    |
[INFO] [stdout] 32 |   /// Wire types for chat completion requests, responses, and streaming.
[INFO] [stdout]    |       ^ starts here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: ends near `Function specification (name, description, JSON Schema parameters).`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/lib.rs:32:7
[INFO] [stdout]    |
[INFO] [stdout] 32 |   /// Wire types for chat completion requests, responses, and streaming.
[INFO] [stdout]    |       ^ starts here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: ends near `Token usage statistics returned in every completion response.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/lib.rs:32:7
[INFO] [stdout]    |
[INFO] [stdout] 32 |   /// Wire types for chat completion requests, responses, and streaming.
[INFO] [stdout]    |       ^ starts here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: ends near `Request body for the `POST chat/completions` endpoint.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/lib.rs:32:7
[INFO] [stdout]    |
[INFO] [stdout] 32 |   /// Wire types for chat completion requests, responses, and streaming.
[INFO] [stdout]    |       ^ starts here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: ends near `Response body from the `POST chat/completions` endpoint.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/lib.rs:32:7
[INFO] [stdout]    |
[INFO] [stdout] 32 |   /// Wire types for chat completion requests, responses, and streaming.
[INFO] [stdout]    |       ^ starts here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: ends near `One completion alternative within a `ChatCompletionResponse`.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/lib.rs:32:7
[INFO] [stdout]    |
[INFO] [stdout] 32 |   /// Wire types for chat completion requests, responses, and streaming.
[INFO] [stdout]    |       ^ starts here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: ends near `A single Server-Sent Events chunk from a streaming completion.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/lib.rs:32:7
[INFO] [stdout]    |
[INFO] [stdout] 32 |   /// Wire types for chat completion requests, responses, and streaming.
[INFO] [stdout]    |       ^ starts here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: ends near `One delta choice within a streaming chunk.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/lib.rs:32:7
[INFO] [stdout]    |
[INFO] [stdout] 32 |   /// Wire types for chat completion requests, responses, and streaming.
[INFO] [stdout]    |       ^ starts here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: ends near `Partial message update delivered in a streaming chunk.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/lib.rs:35:7
[INFO] [stdout]    |
[INFO] [stdout] 35 |   /// Environment configuration trait and default implementation.
[INFO] [stdout]    |       ^ starts here
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: ends near `Configuration contract for an OpenAI-compatible API environment.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/environment.rs:81:3
[INFO] [stdout]    |
[INFO] [stdout] 81 | /   pub struct OpenAiCompatEnvironmentImpl
[INFO] [stdout] 82 | |   {
[INFO] [stdout] 83 | |     /// API authentication key.
[INFO] [stdout] 84 | |     api_key  : String,
[INFO] [stdout] ...  |
[INFO] [stdout] 88 | |     timeout  : Duration,
[INFO] [stdout] 89 | |   }
[INFO] [stdout]    | |___^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near ` Environment configuration trait and default implementation.`
[INFO] [stdout]    = help: ends near `Default OpenAI-compatible environment backed by in-memory values.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/client.rs:34:3
[INFO] [stdout]    |
[INFO] [stdout] 34 | /   pub struct Client< E >
[INFO] [stdout] 35 | |   where
[INFO] [stdout] 36 | |     E : OpenAiCompatEnvironment,
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |     environment : E,
[INFO] [stdout] 42 | |   }
[INFO] [stdout]    | |___^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near ` Async HTTP client.`
[INFO] [stdout]    = help: ends near `Async HTTP client for OpenAI-compatible REST APIs.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/sync_client.rs:34:3
[INFO] [stdout]    |
[INFO] [stdout] 34 | /   pub struct SyncClient< E >
[INFO] [stdout] 35 | |   where
[INFO] [stdout] 36 | |     E : OpenAiCompatEnvironment,
[INFO] [stdout] ...  |
[INFO] [stdout] 41 | |     runtime : Arc< Runtime >,
[INFO] [stdout] 42 | |   }
[INFO] [stdout]    | |___^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near ` Blocking wrapper around the async client.`
[INFO] [stdout]    = help: ends near `Blocking wrapper around [`Client`] for use in synchronous contexts.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/error.rs:46:3
[INFO] [stdout]    |
[INFO] [stdout] 46 |   pub type Result< T > = error_tools::untyped::Result< T >;
[INFO] [stdout]    |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near ` Error type and result alias.`
[INFO] [stdout]    = help: ends near `Crate-level result type backed by a boxed dynamic error.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/components/chat.rs:27:3
[INFO] [stdout]    |
[INFO] [stdout] 27 | /   pub enum Role
[INFO] [stdout] 28 | |   {
[INFO] [stdout] 29 | |     /// System-level instructions provided before the conversation begins.
[INFO] [stdout] 30 | |     System,
[INFO] [stdout] ...  |
[INFO] [stdout] 47 | |     Other,
[INFO] [stdout] 48 | |   }
[INFO] [stdout]    | |___^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near ` Wire types for chat completion requests, responses, and streaming.`
[INFO] [stdout]    = help: ends near `Role of a participant in a chat conversation.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/components/chat.rs:27:3
[INFO] [stdout]    |
[INFO] [stdout] 27 | /   pub enum Role
[INFO] [stdout] 28 | |   {
[INFO] [stdout] 29 | |     /// System-level instructions provided before the conversation begins.
[INFO] [stdout] 30 | |     System,
[INFO] [stdout] ...  |
[INFO] [stdout] 47 | |     Other,
[INFO] [stdout] 48 | |   }
[INFO] [stdout]    | |___^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near ` Wire types for chat completion requests, responses, and streaming.`
[INFO] [stdout]    = help: ends near ` Wire types for chat completion requests, responses, and streaming.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/components/chat.rs:27:3
[INFO] [stdout]    |
[INFO] [stdout] 27 | /   pub enum Role
[INFO] [stdout] 28 | |   {
[INFO] [stdout] 29 | |     /// System-level instructions provided before the conversation begins.
[INFO] [stdout] 30 | |     System,
[INFO] [stdout] ...  |
[INFO] [stdout] 47 | |     Other,
[INFO] [stdout] 48 | |   }
[INFO] [stdout]    | |___^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near ` Chat completion request, response, and message types.`
[INFO] [stdout]    = help: ends near ` Chat completion request, response, and message types.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/components/chat.rs:59:3
[INFO] [stdout]    |
[INFO] [stdout] 59 | /   pub struct ToolCall
[INFO] [stdout] 60 | |   {
[INFO] [stdout] 61 | |     /// Unique identifier for this invocation (used to correlate tool results).
[INFO] [stdout] 62 | |     pub id : String,
[INFO] [stdout] ...  |
[INFO] [stdout] 69 | |     pub function : FunctionCall,
[INFO] [stdout] 70 | |   }
[INFO] [stdout]    | |___^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near ` Wire types for chat completion requests, responses, and streaming.`
[INFO] [stdout]    = help: ends near ` Wire types for chat completion requests, responses, and streaming.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/components/chat.rs:59:3
[INFO] [stdout]    |
[INFO] [stdout] 59 | /   pub struct ToolCall
[INFO] [stdout] 60 | |   {
[INFO] [stdout] 61 | |     /// Unique identifier for this invocation (used to correlate tool results).
[INFO] [stdout] 62 | |     pub id : String,
[INFO] [stdout] ...  |
[INFO] [stdout] 69 | |     pub function : FunctionCall,
[INFO] [stdout] 70 | |   }
[INFO] [stdout]    | |___^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near ` Chat completion request, response, and message types.`
[INFO] [stdout]    = help: ends near ` Chat completion request, response, and message types.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/components/chat.rs:74:3
[INFO] [stdout]    |
[INFO] [stdout] 74 | /   pub struct FunctionCall
[INFO] [stdout] 75 | |   {
[INFO] [stdout] 76 | |     /// Registered function name.
[INFO] [stdout] 77 | |     pub name : String,
[INFO] [stdout] ...  |
[INFO] [stdout] 80 | |     pub arguments : String,
[INFO] [stdout] 81 | |   }
[INFO] [stdout]    | |___^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near ` Wire types for chat completion requests, responses, and streaming.`
[INFO] [stdout]    = help: ends near `Name and arguments for a specific function invocation.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/components/chat.rs:74:3
[INFO] [stdout]    |
[INFO] [stdout] 74 | /   pub struct FunctionCall
[INFO] [stdout] 75 | |   {
[INFO] [stdout] 76 | |     /// Registered function name.
[INFO] [stdout] 77 | |     pub name : String,
[INFO] [stdout] ...  |
[INFO] [stdout] 80 | |     pub arguments : String,
[INFO] [stdout] 81 | |   }
[INFO] [stdout]    | |___^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near ` Wire types for chat completion requests, responses, and streaming.`
[INFO] [stdout]    = help: ends near ` Wire types for chat completion requests, responses, and streaming.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/components/chat.rs:74:3
[INFO] [stdout]    |
[INFO] [stdout] 74 | /   pub struct FunctionCall
[INFO] [stdout] 75 | |   {
[INFO] [stdout] 76 | |     /// Registered function name.
[INFO] [stdout] 77 | |     pub name : String,
[INFO] [stdout] ...  |
[INFO] [stdout] 80 | |     pub arguments : String,
[INFO] [stdout] 81 | |   }
[INFO] [stdout]    | |___^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near ` Chat completion request, response, and message types.`
[INFO] [stdout]    = help: ends near ` Chat completion request, response, and message types.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/components/chat.rs:104:3
[INFO] [stdout]     |
[INFO] [stdout] 104 | /   pub struct Message
[INFO] [stdout] 105 | |   {
[INFO] [stdout] 106 | |     /// Who sent this message.
[INFO] [stdout] 107 | |     pub role : Role,
[INFO] [stdout] ...   |
[INFO] [stdout] 119 | |     pub tool_call_id : Option< String >,
[INFO] [stdout] 120 | |   }
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near ` Wire types for chat completion requests, responses, and streaming.`
[INFO] [stdout]     = help: ends near ` Wire types for chat completion requests, responses, and streaming.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/components/chat.rs:104:3
[INFO] [stdout]     |
[INFO] [stdout] 104 | /   pub struct Message
[INFO] [stdout] 105 | |   {
[INFO] [stdout] 106 | |     /// Who sent this message.
[INFO] [stdout] 107 | |     pub role : Role,
[INFO] [stdout] ...   |
[INFO] [stdout] 119 | |     pub tool_call_id : Option< String >,
[INFO] [stdout] 120 | |   }
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near ` Chat completion request, response, and message types.`
[INFO] [stdout]     = help: ends near ` Chat completion request, response, and message types.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/components/chat.rs:237:3
[INFO] [stdout]     |
[INFO] [stdout] 237 | /   pub struct Tool
[INFO] [stdout] 238 | |   {
[INFO] [stdout] 239 | |     /// Always `"function"` for function-type tools.
[INFO] [stdout] 240 | |     #[ serde( rename = "type" ) ]
[INFO] [stdout] ...   |
[INFO] [stdout] 244 | |     pub function : Function,
[INFO] [stdout] 245 | |   }
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near ` Wire types for chat completion requests, responses, and streaming.`
[INFO] [stdout]     = help: ends near `A function tool definition passed in the `tools` array of a request.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/components/chat.rs:237:3
[INFO] [stdout]     |
[INFO] [stdout] 237 | /   pub struct Tool
[INFO] [stdout] 238 | |   {
[INFO] [stdout] 239 | |     /// Always `"function"` for function-type tools.
[INFO] [stdout] 240 | |     #[ serde( rename = "type" ) ]
[INFO] [stdout] ...   |
[INFO] [stdout] 244 | |     pub function : Function,
[INFO] [stdout] 245 | |   }
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near ` Wire types for chat completion requests, responses, and streaming.`
[INFO] [stdout]     = help: ends near ` Wire types for chat completion requests, responses, and streaming.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/components/chat.rs:237:3
[INFO] [stdout]     |
[INFO] [stdout] 237 | /   pub struct Tool
[INFO] [stdout] 238 | |   {
[INFO] [stdout] 239 | |     /// Always `"function"` for function-type tools.
[INFO] [stdout] 240 | |     #[ serde( rename = "type" ) ]
[INFO] [stdout] ...   |
[INFO] [stdout] 244 | |     pub function : Function,
[INFO] [stdout] 245 | |   }
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near ` Chat completion request, response, and message types.`
[INFO] [stdout]     = help: ends near ` Chat completion request, response, and message types.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/components/chat.rs:289:3
[INFO] [stdout]     |
[INFO] [stdout] 289 | /   pub struct Function
[INFO] [stdout] 290 | |   {
[INFO] [stdout] 291 | |     /// Registered function name.
[INFO] [stdout] 292 | |     pub name : String,
[INFO] [stdout] ...   |
[INFO] [stdout] 298 | |     pub parameters : serde_json::Value,
[INFO] [stdout] 299 | |   }
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near ` Wire types for chat completion requests, responses, and streaming.`
[INFO] [stdout]     = help: ends near `Function specification (name, description, JSON Schema parameters).`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/components/chat.rs:289:3
[INFO] [stdout]     |
[INFO] [stdout] 289 | /   pub struct Function
[INFO] [stdout] 290 | |   {
[INFO] [stdout] 291 | |     /// Registered function name.
[INFO] [stdout] 292 | |     pub name : String,
[INFO] [stdout] ...   |
[INFO] [stdout] 298 | |     pub parameters : serde_json::Value,
[INFO] [stdout] 299 | |   }
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near ` Wire types for chat completion requests, responses, and streaming.`
[INFO] [stdout]     = help: ends near ` Wire types for chat completion requests, responses, and streaming.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/components/chat.rs:289:3
[INFO] [stdout]     |
[INFO] [stdout] 289 | /   pub struct Function
[INFO] [stdout] 290 | |   {
[INFO] [stdout] 291 | |     /// Registered function name.
[INFO] [stdout] 292 | |     pub name : String,
[INFO] [stdout] ...   |
[INFO] [stdout] 298 | |     pub parameters : serde_json::Value,
[INFO] [stdout] 299 | |   }
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near ` Chat completion request, response, and message types.`
[INFO] [stdout]     = help: ends near ` Chat completion request, response, and message types.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/components/chat.rs:307:3
[INFO] [stdout]     |
[INFO] [stdout] 307 | /   pub struct Usage
[INFO] [stdout] 308 | |   {
[INFO] [stdout] 309 | |     /// Number of tokens in the prompt (input).
[INFO] [stdout] 310 | |     pub prompt_tokens : u32,
[INFO] [stdout] ...   |
[INFO] [stdout] 316 | |     pub total_tokens : u32,
[INFO] [stdout] 317 | |   }
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near ` Wire types for chat completion requests, responses, and streaming.`
[INFO] [stdout]     = help: ends near `Token usage statistics returned in every completion response.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/components/chat.rs:307:3
[INFO] [stdout]     |
[INFO] [stdout] 307 | /   pub struct Usage
[INFO] [stdout] 308 | |   {
[INFO] [stdout] 309 | |     /// Number of tokens in the prompt (input).
[INFO] [stdout] 310 | |     pub prompt_tokens : u32,
[INFO] [stdout] ...   |
[INFO] [stdout] 316 | |     pub total_tokens : u32,
[INFO] [stdout] 317 | |   }
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near ` Wire types for chat completion requests, responses, and streaming.`
[INFO] [stdout]     = help: ends near ` Wire types for chat completion requests, responses, and streaming.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/components/chat.rs:307:3
[INFO] [stdout]     |
[INFO] [stdout] 307 | /   pub struct Usage
[INFO] [stdout] 308 | |   {
[INFO] [stdout] 309 | |     /// Number of tokens in the prompt (input).
[INFO] [stdout] 310 | |     pub prompt_tokens : u32,
[INFO] [stdout] ...   |
[INFO] [stdout] 316 | |     pub total_tokens : u32,
[INFO] [stdout] 317 | |   }
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near ` Chat completion request, response, and message types.`
[INFO] [stdout]     = help: ends near ` Chat completion request, response, and message types.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/components/chat.rs:342:3
[INFO] [stdout]     |
[INFO] [stdout] 342 | /   pub struct ChatCompletionRequest
[INFO] [stdout] 343 | |   {
[INFO] [stdout] 344 | |     /// Model identifier (e.g. `"gpt-4o"`, `"grok-2-1212"`).
[INFO] [stdout] 345 | |     pub model : String,
[INFO] [stdout] ...   |
[INFO] [stdout] 376 | |     pub tools : Option< Vec< Tool > >,
[INFO] [stdout] 377 | |   }
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near ` Wire types for chat completion requests, responses, and streaming.`
[INFO] [stdout]     = help: ends near `Request body for the `POST chat/completions` endpoint.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/components/chat.rs:342:3
[INFO] [stdout]     |
[INFO] [stdout] 342 | /   pub struct ChatCompletionRequest
[INFO] [stdout] 343 | |   {
[INFO] [stdout] 344 | |     /// Model identifier (e.g. `"gpt-4o"`, `"grok-2-1212"`).
[INFO] [stdout] 345 | |     pub model : String,
[INFO] [stdout] ...   |
[INFO] [stdout] 376 | |     pub tools : Option< Vec< Tool > >,
[INFO] [stdout] 377 | |   }
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near ` Wire types for chat completion requests, responses, and streaming.`
[INFO] [stdout]     = help: ends near ` Wire types for chat completion requests, responses, and streaming.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/components/chat.rs:342:3
[INFO] [stdout]     |
[INFO] [stdout] 342 | /   pub struct ChatCompletionRequest
[INFO] [stdout] 343 | |   {
[INFO] [stdout] 344 | |     /// Model identifier (e.g. `"gpt-4o"`, `"grok-2-1212"`).
[INFO] [stdout] 345 | |     pub model : String,
[INFO] [stdout] ...   |
[INFO] [stdout] 376 | |     pub tools : Option< Vec< Tool > >,
[INFO] [stdout] 377 | |   }
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near ` Chat completion request, response, and message types.`
[INFO] [stdout]     = help: ends near ` Chat completion request, response, and message types.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/components/chat.rs:385:3
[INFO] [stdout]     |
[INFO] [stdout] 385 | /   pub struct ChatCompletionResponse
[INFO] [stdout] 386 | |   {
[INFO] [stdout] 387 | |     /// Opaque completion identifier (e.g. `"chatcmpl-abc123"`).
[INFO] [stdout] 388 | |     pub id : String,
[INFO] [stdout] ...   |
[INFO] [stdout] 403 | |     pub usage : Usage,
[INFO] [stdout] 404 | |   }
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near ` Wire types for chat completion requests, responses, and streaming.`
[INFO] [stdout]     = help: ends near `Response body from the `POST chat/completions` endpoint.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/components/chat.rs:385:3
[INFO] [stdout]     |
[INFO] [stdout] 385 | /   pub struct ChatCompletionResponse
[INFO] [stdout] 386 | |   {
[INFO] [stdout] 387 | |     /// Opaque completion identifier (e.g. `"chatcmpl-abc123"`).
[INFO] [stdout] 388 | |     pub id : String,
[INFO] [stdout] ...   |
[INFO] [stdout] 403 | |     pub usage : Usage,
[INFO] [stdout] 404 | |   }
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near ` Wire types for chat completion requests, responses, and streaming.`
[INFO] [stdout]     = help: ends near ` Wire types for chat completion requests, responses, and streaming.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/components/chat.rs:385:3
[INFO] [stdout]     |
[INFO] [stdout] 385 | /   pub struct ChatCompletionResponse
[INFO] [stdout] 386 | |   {
[INFO] [stdout] 387 | |     /// Opaque completion identifier (e.g. `"chatcmpl-abc123"`).
[INFO] [stdout] 388 | |     pub id : String,
[INFO] [stdout] ...   |
[INFO] [stdout] 403 | |     pub usage : Usage,
[INFO] [stdout] 404 | |   }
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near ` Chat completion request, response, and message types.`
[INFO] [stdout]     = help: ends near ` Chat completion request, response, and message types.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/components/chat.rs:408:3
[INFO] [stdout]     |
[INFO] [stdout] 408 | /   pub struct Choice
[INFO] [stdout] 409 | |   {
[INFO] [stdout] 410 | |     /// Zero-based index of this choice.
[INFO] [stdout] 411 | |     pub index : u32,
[INFO] [stdout] ...   |
[INFO] [stdout] 417 | |     pub finish_reason : Option< String >,
[INFO] [stdout] 418 | |   }
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near ` Wire types for chat completion requests, responses, and streaming.`
[INFO] [stdout]     = help: ends near `One completion alternative within a `ChatCompletionResponse`.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/components/chat.rs:408:3
[INFO] [stdout]     |
[INFO] [stdout] 408 | /   pub struct Choice
[INFO] [stdout] 409 | |   {
[INFO] [stdout] 410 | |     /// Zero-based index of this choice.
[INFO] [stdout] 411 | |     pub index : u32,
[INFO] [stdout] ...   |
[INFO] [stdout] 417 | |     pub finish_reason : Option< String >,
[INFO] [stdout] 418 | |   }
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near ` Wire types for chat completion requests, responses, and streaming.`
[INFO] [stdout]     = help: ends near ` Wire types for chat completion requests, responses, and streaming.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]    --> src/components/chat.rs:408:3
[INFO] [stdout]     |
[INFO] [stdout] 408 | /   pub struct Choice
[INFO] [stdout] 409 | |   {
[INFO] [stdout] 410 | |     /// Zero-based index of this choice.
[INFO] [stdout] 411 | |     pub index : u32,
[INFO] [stdout] ...   |
[INFO] [stdout] 417 | |     pub finish_reason : Option< String >,
[INFO] [stdout] 418 | |   }
[INFO] [stdout]     | |___^
[INFO] [stdout]     |
[INFO] [stdout]     = help: the way this is parsed might change in the future
[INFO] [stdout]     = help: starts near ` Chat completion request, response, and message types.`
[INFO] [stdout]     = help: ends near ` Chat completion request, response, and message types.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/components/streaming.rs:13:3
[INFO] [stdout]    |
[INFO] [stdout] 13 | /   pub struct ChatCompletionChunk
[INFO] [stdout] 14 | |   {
[INFO] [stdout] 15 | |     /// Opaque completion identifier (same across all chunks for one request).
[INFO] [stdout] 16 | |     pub id : String,
[INFO] [stdout] ...  |
[INFO] [stdout] 28 | |     pub choices : Vec< ChunkChoice >,
[INFO] [stdout] 29 | |   }
[INFO] [stdout]    | |___^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near ` Wire types for chat completion requests, responses, and streaming.`
[INFO] [stdout]    = help: ends near `A single Server-Sent Events chunk from a streaming completion.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/components/streaming.rs:13:3
[INFO] [stdout]    |
[INFO] [stdout] 13 | /   pub struct ChatCompletionChunk
[INFO] [stdout] 14 | |   {
[INFO] [stdout] 15 | |     /// Opaque completion identifier (same across all chunks for one request).
[INFO] [stdout] 16 | |     pub id : String,
[INFO] [stdout] ...  |
[INFO] [stdout] 28 | |     pub choices : Vec< ChunkChoice >,
[INFO] [stdout] 29 | |   }
[INFO] [stdout]    | |___^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near ` Wire types for chat completion requests, responses, and streaming.`
[INFO] [stdout]    = help: ends near ` Wire types for chat completion requests, responses, and streaming.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/components/streaming.rs:13:3
[INFO] [stdout]    |
[INFO] [stdout] 13 | /   pub struct ChatCompletionChunk
[INFO] [stdout] 14 | |   {
[INFO] [stdout] 15 | |     /// Opaque completion identifier (same across all chunks for one request).
[INFO] [stdout] 16 | |     pub id : String,
[INFO] [stdout] ...  |
[INFO] [stdout] 28 | |     pub choices : Vec< ChunkChoice >,
[INFO] [stdout] 29 | |   }
[INFO] [stdout]    | |___^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near ` Server-Sent Events streaming types.`
[INFO] [stdout]    = help: ends near ` Server-Sent Events streaming types.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/components/streaming.rs:33:3
[INFO] [stdout]    |
[INFO] [stdout] 33 | /   pub struct ChunkChoice
[INFO] [stdout] 34 | |   {
[INFO] [stdout] 35 | |     /// Zero-based index.
[INFO] [stdout] 36 | |     pub index : u32,
[INFO] [stdout] ...  |
[INFO] [stdout] 42 | |     pub finish_reason : Option< String >,
[INFO] [stdout] 43 | |   }
[INFO] [stdout]    | |___^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near ` Wire types for chat completion requests, responses, and streaming.`
[INFO] [stdout]    = help: ends near `One delta choice within a streaming chunk.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/components/streaming.rs:33:3
[INFO] [stdout]    |
[INFO] [stdout] 33 | /   pub struct ChunkChoice
[INFO] [stdout] 34 | |   {
[INFO] [stdout] 35 | |     /// Zero-based index.
[INFO] [stdout] 36 | |     pub index : u32,
[INFO] [stdout] ...  |
[INFO] [stdout] 42 | |     pub finish_reason : Option< String >,
[INFO] [stdout] 43 | |   }
[INFO] [stdout]    | |___^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near ` Wire types for chat completion requests, responses, and streaming.`
[INFO] [stdout]    = help: ends near ` Wire types for chat completion requests, responses, and streaming.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/components/streaming.rs:33:3
[INFO] [stdout]    |
[INFO] [stdout] 33 | /   pub struct ChunkChoice
[INFO] [stdout] 34 | |   {
[INFO] [stdout] 35 | |     /// Zero-based index.
[INFO] [stdout] 36 | |     pub index : u32,
[INFO] [stdout] ...  |
[INFO] [stdout] 42 | |     pub finish_reason : Option< String >,
[INFO] [stdout] 43 | |   }
[INFO] [stdout]    | |___^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near ` Server-Sent Events streaming types.`
[INFO] [stdout]    = help: ends near ` Server-Sent Events streaming types.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/components/streaming.rs:47:3
[INFO] [stdout]    |
[INFO] [stdout] 47 | /   pub struct Delta
[INFO] [stdout] 48 | |   {
[INFO] [stdout] 49 | |     /// Role — present only in the first chunk of a response.
[INFO] [stdout] 50 | |     #[ serde( skip_serializing_if = "Option::is_none" ) ]
[INFO] [stdout] ...  |
[INFO] [stdout] 59 | |     pub tool_calls : Option< Vec< ToolCall > >,
[INFO] [stdout] 60 | |   }
[INFO] [stdout]    | |___^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near ` Wire types for chat completion requests, responses, and streaming.`
[INFO] [stdout]    = help: ends near `Partial message update delivered in a streaming chunk.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/components/streaming.rs:47:3
[INFO] [stdout]    |
[INFO] [stdout] 47 | /   pub struct Delta
[INFO] [stdout] 48 | |   {
[INFO] [stdout] 49 | |     /// Role — present only in the first chunk of a response.
[INFO] [stdout] 50 | |     #[ serde( skip_serializing_if = "Option::is_none" ) ]
[INFO] [stdout] ...  |
[INFO] [stdout] 59 | |     pub tool_calls : Option< Vec< ToolCall > >,
[INFO] [stdout] 60 | |   }
[INFO] [stdout]    | |___^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near ` Wire types for chat completion requests, responses, and streaming.`
[INFO] [stdout]    = help: ends near ` Wire types for chat completion requests, responses, and streaming.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/components/streaming.rs:47:3
[INFO] [stdout]    |
[INFO] [stdout] 47 | /   pub struct Delta
[INFO] [stdout] 48 | |   {
[INFO] [stdout] 49 | |     /// Role — present only in the first chunk of a response.
[INFO] [stdout] 50 | |     #[ serde( skip_serializing_if = "Option::is_none" ) ]
[INFO] [stdout] ...  |
[INFO] [stdout] 59 | |     pub tool_calls : Option< Vec< ToolCall > >,
[INFO] [stdout] 60 | |   }
[INFO] [stdout]    | |___^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near ` Server-Sent Events streaming types.`
[INFO] [stdout]    = help: ends near ` Server-Sent Events streaming types.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: markdown element starts on one item and ends on another
[INFO] [stdout]   --> src/environment.rs:22:3
[INFO] [stdout]    |
[INFO] [stdout] 22 | /   pub trait OpenAiCompatEnvironment : Send + Sync + 'static
[INFO] [stdout] 23 | |   {
[INFO] [stdout] 24 | |     /// Returns the raw API key string.
[INFO] [stdout] 25 | |     fn api_key( &self ) -> &str;
[INFO] [stdout] ...  |
[INFO] [stdout] 61 | |   }
[INFO] [stdout]    | |___^
[INFO] [stdout]    |
[INFO] [stdout]    = help: the way this is parsed might change in the future
[INFO] [stdout]    = help: starts near ` Environment configuration trait and default implementation.`
[INFO] [stdout]    = help: ends near `Configuration contract for an OpenAI-compatible API environment.`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not document `api_openai_compatible`
[INFO] running `Command { std: "docker" "inspect" "a2641cdc32420ba4fc34013982d8f8d3b39e9005377f58b70539f285b4644d4f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a2641cdc32420ba4fc34013982d8f8d3b39e9005377f58b70539f285b4644d4f", kill_on_drop: false }`
[INFO] [stdout] a2641cdc32420ba4fc34013982d8f8d3b39e9005377f58b70539f285b4644d4f
