1#![doc = include_str!("../README.md")]
2#![deny(missing_docs)]
3#![deny(clippy::unwrap_used)]
4#![deny(clippy::expect_used)]
5#![deny(clippy::panic)]
6#![deny(clippy::todo)]
7#![deny(clippy::unimplemented)]
8#![warn(clippy::missing_errors_doc)]
9#![warn(clippy::missing_panics_doc)]
10#![cfg_attr(test, allow(clippy::unwrap_used, clippy::expect_used, clippy::panic))]
13#![cfg_attr(docsrs, feature(doc_cfg))]
14
15pub mod breaker;
16pub mod budget;
17pub mod chat;
18pub mod cost;
19
20#[cfg(feature = "embeddings")]
21#[cfg_attr(docsrs, doc(cfg(feature = "embeddings")))]
22pub mod embed;
23
24pub mod error;
25pub mod model;
26mod observe;
27pub mod provider;
28pub mod registry;
29pub mod retry;
30pub mod router;
31pub mod secret;
32pub mod transport;
33
34pub mod providers;
35
36#[cfg(feature = "testkit")]
37#[cfg_attr(docsrs, doc(cfg(feature = "testkit")))]
38pub mod testkit;
39
40pub use breaker::Breaker;
41pub use budget::{Budget, Spending};
42pub use chat::{
43 ChatRequest, ChatResponse, ContentBlock, Effort, Event, EventStream, Generation, ImageSource,
44 Message, Needs, Role, StopReason, Thinking, ToolSchema, Transcript,
45};
46pub use cost::{Ledger, Micros, PriceBook, Priced, Rate, Recheck, Usage, UsageCoverage};
47#[cfg(feature = "embeddings")]
48pub use embed::{EmbedRequest, Embedder, Embedding, EmbeddingCapabilities, Embeddings, Purpose};
49pub use error::{Error, Result};
50pub use model::{ModelCapabilities, ModelId, Reach};
51pub use provider::{Access, Provider};
52pub use registry::Registry;
53pub use retry::{Delay, Retry};
54pub use router::{Order, Requirements, Route, Routed, Router};
55pub use secret::Secret;
56pub use transport::{HttpRequest, HttpResponse, HttpTransport, Method};