Skip to main content

bitrouter_core/models/image/
image_model.rs

1use dynosaur::dynosaur;
2
3use crate::models::image::{
4    call_options::ImageModelCallOptions, generation_result::ImageModelGenerationResult,
5};
6
7#[dynosaur(pub DynImageModel = dyn(box) ImageModel)]
8pub trait ImageModel: Send + Sync {
9    fn provider_name(&self) -> &str;
10    fn model_id(&self) -> &str;
11    fn max_images_per_call(&self) -> impl Future<Output = Option<u32>> + Send;
12    fn generate(
13        &self,
14        options: ImageModelCallOptions,
15    ) -> impl Future<Output = ImageModelGenerationResult> + Send;
16}