Skip to main content

runpod_sdk/
lib.rs

1#![forbid(unsafe_code)]
2#![warn(missing_docs)]
3#![cfg_attr(docsrs, feature(doc_cfg))]
4#![doc = include_str!("../README.md")]
5
6// Compile-time check: ensure at least one TLS backend is enabled
7#[cfg(not(any(feature = "rustls-tls", feature = "native-tls")))]
8compile_error!(
9    "At least one TLS backend must be enabled. \
10     Enable either the 'rustls-tls' (recommended) or 'native-tls' feature. \
11     Example: cargo build --features rustls-tls"
12);
13
14mod client;
15mod error;
16pub mod model;
17#[doc(hidden)]
18pub mod prelude;
19#[cfg(feature = "serverless")]
20#[cfg_attr(docsrs, doc(cfg(feature = "serverless")))]
21pub mod serverless;
22pub mod service;
23
24pub use client::{RunpodClient, RunpodConfig, builder};
25pub use error::{Error, Result};
26
27/// Tracing target for client-level operations (HTTP requests, client creation).
28#[cfg(feature = "tracing")]
29#[cfg_attr(docsrs, doc(cfg(feature = "tracing")))]
30pub const TRACING_TARGET_CLIENT: &str = "runpod_sdk::client";
31
32/// Tracing target for configuration operations (config creation, validation).
33#[cfg(feature = "tracing")]
34#[cfg_attr(docsrs, doc(cfg(feature = "tracing")))]
35pub const TRACING_TARGET_CONFIG: &str = "runpod_sdk::config";
36
37/// Tracing target for service-level operations (API calls, business logic).
38#[cfg(feature = "tracing")]
39#[cfg_attr(docsrs, doc(cfg(feature = "tracing")))]
40pub const TRACING_TARGET_SERVICE: &str = "runpod_sdk::service";