#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
#[non_exhaustive]
pub enum WebSearchBehavior {
#[default]
Ignore,
Reject,
}
#[derive(Debug, Clone, Copy)]
#[non_exhaustive]
pub struct ConversionOptions {
pub default_thinking_mode: bool,
pub responses_web_search: WebSearchBehavior,
pub messages_web_search: WebSearchBehavior,
}
impl ConversionOptions {
pub const fn new() -> Self {
Self {
default_thinking_mode: true,
responses_web_search: WebSearchBehavior::Ignore,
messages_web_search: WebSearchBehavior::Reject,
}
}
#[must_use]
pub fn with_default_thinking_mode(mut self, default_thinking_mode: bool) -> Self {
self.default_thinking_mode = default_thinking_mode;
self
}
#[must_use]
pub fn with_responses_web_search(mut self, responses_web_search: WebSearchBehavior) -> Self {
self.responses_web_search = responses_web_search;
self
}
#[must_use]
pub fn with_messages_web_search(mut self, messages_web_search: WebSearchBehavior) -> Self {
self.messages_web_search = messages_web_search;
self
}
}
impl Default for ConversionOptions {
fn default() -> Self {
Self::new()
}
}