//! Feature-gated provider implementations.
//!
//! Each provider is a correct, complete implementation of [`CompletionModel`]
//! against a real API. Enable only what you need:
//!
//! ```toml
//! [dependencies]
//! irig = { version = "0.1", features = ["openai"] }
//! ```
//!
//! All providers are generic over `H: HttpClient`, so you supply the transport
//! (reqwest, ic_cdk HTTP outcall, mock, …) and the provider handles the
//! serialisation / deserialisation.