#![cfg_attr(docsrs, feature(doc_cfg))]
#![forbid(unsafe_code)]
#![deny(missing_docs)]
#![warn(missing_debug_implementations)]
#[cfg(not(any(feature = "rustls", feature = "native-tls")))]
compile_error!("Enable the `rustls` feature (default) or `native-tls`.");
mod backend;
#[cfg(feature = "blocking")]
mod blocking;
mod client;
mod config;
mod error;
mod headers;
mod retry;
mod transport;
pub mod types;
pub use backend::Backend;
#[cfg(feature = "blocking")]
#[cfg_attr(docsrs, doc(cfg(feature = "blocking")))]
pub use blocking::{BlockingClient, BlockingModels};
pub use client::{Client, Models};
pub use config::{
CallOptions, ClientConfig, DEFAULT_BASE_URL, DEFAULT_MODEL, DEFAULT_TIMEOUT, ENV_API_KEY,
ENV_BASE_URL, ENV_DEFAULT_MODEL, SecretString,
};
pub use error::{ApiError, ApiErrorKind, Error, ErrorBody, TransportError};
pub use http::{HeaderMap, HeaderValue, StatusCode};
pub use indexmap::IndexMap;
pub use retry::{RetryPolicy, StatusSet};
pub use types::{
Answer, ChoiceView, Entry, ListModelsResponse, MAX_CHOICE_OPTIONS, ModelCard, NoulCriteria,
NoulView, Question, Questions, ResponseMeta, ScoreView, SystemOneRequest, SystemOneResponse,
Usage,
};
pub use url::Url;
pub const VERSION: &str = env!("CARGO_PKG_VERSION");
pub type Result<T, E = Error> = std::result::Result<T, E>;
#[macro_export]
macro_rules! questions {
( $($key:expr => $value:expr),* $(,)? ) => {{
let mut map = $crate::IndexMap::new();
$(
map.insert(
::std::string::ToString::to_string(&$key),
::core::convert::Into::<$crate::Question>::into($value),
);
)*
map
}};
}