use std::collections::HashMap;
use std::time::Duration;
#[derive(Debug, Clone, Default)]
pub struct CacheOptions {
pub enabled: Option<bool>,
pub bucket_max_size: Option<u32>,
}
#[derive(Debug, Clone, Default)]
pub struct FloopyOptions {
pub cache: Option<CacheOptions>,
pub prompt_id: Option<String>,
pub prompt_version: Option<String>,
pub llm_security_enabled: Option<bool>,
}
#[derive(Debug, Clone, Default)]
pub struct RequestOptions {
pub(crate) headers: HashMap<String, String>,
pub(crate) timeout: Option<Duration>,
pub(crate) options: Option<FloopyOptions>,
}
impl RequestOptions {
#[must_use]
pub fn new() -> Self {
Self::default()
}
#[must_use]
pub fn header(mut self, key: impl Into<String>, value: impl Into<String>) -> Self {
self.headers.insert(key.into(), value.into());
self
}
#[must_use]
pub fn timeout(mut self, timeout: Duration) -> Self {
self.timeout = Some(timeout);
self
}
#[must_use]
pub fn options(mut self, options: FloopyOptions) -> Self {
self.options = Some(options);
self
}
}