warning: unused import: `Embedding`
  --> src\proxy\mod.rs:50:20
   |
50 | use crate::types::{Embedding, EmbeddingRequest, EmbeddingUsage, FinishReason};
   |                    ^^^^^^^^^
   |
   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default

   Compiling llmrust v0.1.0 (D:\halowor\llmrust)
warning: `llmrust` (lib) generated 1 warning (run `cargo fix --lib -p llmrust` to apply 1 suggestion)
error: cannot find attribute `async_trait` in this scope
    --> src\proxy\mod.rs:2194:7
     |
2194 |     #[async_trait]
     |       ^^^^^^^^^^^
     |
     = note: attribute macro `crate::providers::tests::async_trait` exists but is inaccessible
     = note: `async_trait` is in scope, but it is a crate, not an attribute
help: consider importing one of these attribute macros
     |
1091 +     use async_trait::async_trait;
     |
1091 +     use axum::async_trait;
     |

error: cannot find attribute `async_trait` in this scope
    --> src\proxy\mod.rs:2395:11
     |
2395 |         #[async_trait]
     |           ^^^^^^^^^^^
     |
     = note: attribute macro `crate::providers::tests::async_trait` exists but is inaccessible
     = note: `async_trait` is in scope, but it is a crate, not an attribute
help: consider importing one of these attribute macros
     |
1091 +     use async_trait::async_trait;
     |
1091 +     use axum::async_trait;
     |

error[E0412]: cannot find type `Mutex` in this scope
    --> src\proxy\mod.rs:2191:23
     |
2191 |         captured: Arc<Mutex<Option<EmbeddingRequest>>>,
     |                       ^^^^^ not found in this scope
     |
     = note: struct `crate::router::tests::Mutex` exists but is inaccessible
help: consider importing one of these structs
     |
1091 +     use std::sync::Mutex;
     |
1091 +     use std::sync::nonpoison::Mutex;
     |
1091 +     use futures::lock::Mutex;
     |
1091 +     use tokio::sync::Mutex;
     |

error[E0412]: cannot find type `EmbeddingResponse` in this scope
    --> src\proxy\mod.rs:2205:65
     |
2205 |         async fn embed(&self, req: &EmbeddingRequest) -> Result<EmbeddingResponse> {
     |                                                                 ^^^^^^^^^^^^^^^^^
     |
    ::: src\types.rs:782:1
     |
 782 | pub struct EmbeddingRequest {
     | --------------------------- similarly named struct `EmbeddingRequest` defined here
     |
help: a struct with a similar name exists
     |
2205 -         async fn embed(&self, req: &EmbeddingRequest) -> Result<EmbeddingResponse> {
2205 +         async fn embed(&self, req: &EmbeddingRequest) -> Result<EmbeddingRequest> {
     |
help: consider importing this struct through its public re-export
     |
1091 +     use crate::EmbeddingResponse;
     |

error[E0422]: cannot find struct, variant or union type `EmbeddingResponse` in this scope
    --> src\proxy\mod.rs:2207:16
     |
2207 |             Ok(EmbeddingResponse {
     |                ^^^^^^^^^^^^^^^^^
     |
    ::: src\types.rs:782:1
     |
 782 | pub struct EmbeddingRequest {
     | --------------------------- similarly named struct `EmbeddingRequest` defined here
     |
help: a struct with a similar name exists
     |
2207 -             Ok(EmbeddingResponse {
2207 +             Ok(EmbeddingRequest {
     |
help: consider importing this struct through its public re-export
     |
1091 +     use crate::EmbeddingResponse;
     |

error[E0433]: failed to resolve: use of undeclared type `Mutex`
    --> src\proxy\mod.rs:2243:32
     |
2243 |             captured: Arc::new(Mutex::new(None)),
     |                                ^^^^^ use of undeclared type `Mutex`
     |
     = note: struct `crate::router::tests::Mutex` exists but is inaccessible
help: consider importing one of these structs
     |
1091 +     use std::sync::Mutex;
     |
1091 +     use std::sync::nonpoison::Mutex;
     |
1091 +     use futures::lock::Mutex;
     |
1091 +     use tokio::sync::Mutex;
     |

error[E0433]: failed to resolve: use of undeclared type `Mutex`
    --> src\proxy\mod.rs:2268:32
     |
2268 |             captured: Arc::new(Mutex::new(None)),
     |                                ^^^^^ use of undeclared type `Mutex`
     |
     = note: struct `crate::router::tests::Mutex` exists but is inaccessible
help: consider importing one of these structs
     |
1091 +     use std::sync::Mutex;
     |
1091 +     use std::sync::nonpoison::Mutex;
     |
1091 +     use futures::lock::Mutex;
     |
1091 +     use tokio::sync::Mutex;
     |

error[E0433]: failed to resolve: use of undeclared type `Mutex`
    --> src\proxy\mod.rs:2288:33
     |
2288 |         let captured = Arc::new(Mutex::new(None));
     |                                 ^^^^^ use of undeclared type `Mutex`
     |
     = note: struct `crate::router::tests::Mutex` exists but is inaccessible
help: consider importing one of these structs
     |
1091 +     use std::sync::Mutex;
     |
1091 +     use std::sync::nonpoison::Mutex;
     |
1091 +     use futures::lock::Mutex;
     |
1091 +     use tokio::sync::Mutex;
     |

error[E0433]: failed to resolve: use of undeclared type `Mutex`
    --> src\proxy\mod.rs:2432:32
     |
2432 |             captured: Arc::new(Mutex::new(None)),
     |                                ^^^^^ use of undeclared type `Mutex`
     |
     = note: struct `crate::router::tests::Mutex` exists but is inaccessible
help: consider importing one of these structs
     |
1091 +     use std::sync::Mutex;
     |
1091 +     use std::sync::nonpoison::Mutex;
     |
1091 +     use futures::lock::Mutex;
     |
1091 +     use tokio::sync::Mutex;
     |

error[E0433]: failed to resolve: use of undeclared type `Mutex`
    --> src\proxy\mod.rs:2488:33
     |
2488 |         let captured = Arc::new(Mutex::new(None));
     |                                 ^^^^^ use of undeclared type `Mutex`
     |
     = note: struct `crate::router::tests::Mutex` exists but is inaccessible
help: consider importing one of these structs
     |
1091 +     use std::sync::Mutex;
     |
1091 +     use std::sync::nonpoison::Mutex;
     |
1091 +     use futures::lock::Mutex;
     |
1091 +     use tokio::sync::Mutex;
     |

error[E0195]: lifetime parameters or bounds on method `chat` do not match the trait declaration
    --> src\proxy\mod.rs:2196:22
     |
2196 |         async fn chat(&self, _: &ChatRequest) -> Result<ChatResponse> {
     |                      ^ lifetimes do not match method in trait
     |
    ::: src\providers\mod.rs:46:1
     |
  46 | #[async_trait]
     | -------------- this bound might be missing in the impl
...
  49 |     async fn chat(&self, req: &ChatRequest) -> Result<ChatResponse>;
     |              ------------------------------
     |              |    |           |
     |              |    |           this bound might be missing in the impl
     |              |    this bound might be missing in the impl
     |              lifetimes in impl do not match this method in trait

error[E0195]: lifetime parameters or bounds on method `stream` do not match the trait declaration
    --> src\proxy\mod.rs:2199:24
     |
2199 |         async fn stream(
     |                        ^ lifetimes do not match method in trait
     |
    ::: src\providers\mod.rs:46:1
     |
  46 | #[async_trait]
     | -------------- this bound might be missing in the impl
...
  52 |     async fn stream(&self, req: &ChatRequest) -> Result<BoxStream<'static, Result<StreamChunk>>>;
     |              --------------------------------
     |              |      |           |
     |              |      |           this bound might be missing in the impl
     |              |      this bound might be missing in the impl
     |              lifetimes in impl do not match this method in trait

error[E0195]: lifetime parameters or bounds on method `embed` do not match the trait declaration
    --> src\proxy\mod.rs:2205:23
     |
2205 |         async fn embed(&self, req: &EmbeddingRequest) -> Result<EmbeddingResponse> {
     |                       ^ lifetimes do not match method in trait
     |
    ::: src\providers\mod.rs:46:1
     |
  46 | #[async_trait]
     | -------------- this bound might be missing in the impl
...
  58 |     async fn embed(&self, _req: &EmbeddingRequest) -> Result<EmbeddingResponse> {
     |              -------------------------------------
     |              |     |            |
     |              |     |            this bound might be missing in the impl
     |              |     this bound might be missing in the impl
     |              lifetimes in impl do not match this method in trait

error[E0195]: lifetime parameters or bounds on method `chat` do not match the trait declaration
    --> src\proxy\mod.rs:2397:26
     |
2397 |             async fn chat(&self, _: &ChatRequest) -> Result<ChatResponse> {
     |                          ^ lifetimes do not match method in trait
     |
    ::: src\providers\mod.rs:46:1
     |
  46 | #[async_trait]
     | -------------- this bound might be missing in the impl
...
  49 |     async fn chat(&self, req: &ChatRequest) -> Result<ChatResponse>;
     |              ------------------------------
     |              |    |           |
     |              |    |           this bound might be missing in the impl
     |              |    this bound might be missing in the impl
     |              lifetimes in impl do not match this method in trait

error[E0195]: lifetime parameters or bounds on method `stream` do not match the trait declaration
    --> src\proxy\mod.rs:2400:28
     |
2400 |             async fn stream(
     |                            ^ lifetimes do not match method in trait
     |
    ::: src\providers\mod.rs:46:1
     |
  46 | #[async_trait]
     | -------------- this bound might be missing in the impl
...
  52 |     async fn stream(&self, req: &ChatRequest) -> Result<BoxStream<'static, Result<StreamChunk>>>;
     |              --------------------------------
     |              |      |           |
     |              |      |           this bound might be missing in the impl
     |              |      this bound might be missing in the impl
     |              lifetimes in impl do not match this method in trait

Some errors have detailed explanations: E0195, E0412, E0422, E0433.
For more information about an error, try `rustc --explain E0195`.
error: could not compile `llmrust` (lib test) due to 15 previous errors
