async_llm/types/
image_url.rsuse derive_builder::Builder;
use serde::{Deserialize, Serialize};
use crate::error::Error;
#[derive(Debug, Clone, Default, Serialize, Deserialize, PartialEq)]
#[serde(rename_all = "snake_case")]
pub enum ImageDetail {
#[default]
Auto,
Low,
High,
}
#[derive(Debug, Clone, Builder, Default, Serialize, Deserialize, PartialEq)]
#[builder(setter(into, strip_option), default)]
#[builder(derive(Debug))]
#[builder(build_fn(error = Error))]
pub struct ImageUrl {
pub url: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub detail: Option<ImageDetail>,
}
impl From<&str> for ImageUrl {
fn from(value: &str) -> Self {
Self {
url: value.to_string(),
detail: None,
}
}
}