Skip to main content

typesafe_ai_rs/
lib.rs

1#![doc = include_str!("../README.md")]
2
3mod client;
4mod config;
5mod error;
6mod retry;
7mod transport;
8mod types;
9
10#[cfg(feature = "blocking")]
11pub mod blocking;
12
13pub use client::{Client, ClientBuilder, Models};
14pub use config::{LogLevel, RequestOptions};
15pub use error::{ApiError, ApiErrorKind, Error};
16pub use reqwest::header::{HeaderMap, HeaderName, HeaderValue};
17pub use reqwest::StatusCode;
18pub use retry::{parse_retry_after, RetryPolicy, RetryPredicate};
19pub use tokio_util::sync::CancellationToken;
20pub use types::*;
21
22/// Python-compatible name for the asynchronous client.
23pub type AsyncTypeSafeClient = Client;
24/// Python-compatible name for the synchronous client.
25#[cfg(feature = "blocking")]
26pub type TypeSafeClient = blocking::Client;
27
28/// Default API root (without the versioned endpoint path).
29pub const DEFAULT_BASE_URL: &str = "https://api.typesafe.ai";
30/// Default model alias.
31pub const DEFAULT_MODEL: &str = "jev-latest";
32/// Timeout for each complete HTTP attempt, including its response body.
33pub const DEFAULT_TIMEOUT: std::time::Duration = std::time::Duration::from_secs(10);
34/// This crate's version.
35pub const VERSION: &str = env!("CARGO_PKG_VERSION");