Skip to main content

openai_rust/core/
request.rs

1use std::{collections::BTreeMap, time::Duration};
2
3/// Shared per-request options scaffold.
4#[derive(Clone, Debug, Default, Eq, PartialEq)]
5pub struct RequestOptions {
6    /// Optional per-request timeout override.
7    pub timeout: Option<Duration>,
8    /// Optional per-request retry-budget override.
9    pub max_retries: Option<u32>,
10}
11
12/// Effective request options after applying client defaults and overrides.
13#[derive(Clone, Debug, Eq, PartialEq)]
14pub struct ResolvedRequestOptions {
15    pub timeout: Duration,
16    pub max_retries: u32,
17}
18
19/// Prepared request parts emitted by the shared client core before transport.
20#[derive(Clone, Debug, Default, Eq, PartialEq)]
21pub struct PreparedRequest {
22    /// Uppercase HTTP method.
23    pub method: String,
24    /// Fully-resolved request URL.
25    pub url: String,
26    /// Lower-cased request headers.
27    pub headers: BTreeMap<String, String>,
28    /// Optional raw request body.
29    pub body: Option<Vec<u8>>,
30}