use crate::{
config::Config,
error::OpenAIError,
types::{
CreateImageEditRequest, CreateImageRequest, CreateImageVariationRequest, ImagesResponse,
},
Client,
};
pub struct Images<'c, C: Config> {
client: &'c Client<C>,
}
impl<'c, C: Config> Images<'c, C> {
pub fn new(client: &'c Client<C>) -> Self {
Self { client }
}
pub async fn create(&self, request: CreateImageRequest) -> Result<ImagesResponse, OpenAIError> {
self.client.post("/images/generations", request).await
}
pub async fn create_edit(
&self,
request: CreateImageEditRequest,
) -> Result<ImagesResponse, OpenAIError> {
self.client.post_form("/images/edits", request).await
}
pub async fn create_variation(
&self,
request: CreateImageVariationRequest,
) -> Result<ImagesResponse, OpenAIError> {
self.client.post_form("/images/variations", request).await
}
}