Skip to main content

bitrouter_core/models/image/
file.rs

1use crate::models::shared::provider::ProviderMetadata;
2
3/// Represents a file used in an image model call.
4#[derive(Debug, Clone)]
5pub enum ImageModelFile {
6    /// A file represented by its media type and data.
7    File {
8        media_type: String,
9        data: ImageModelFileData,
10        provider_metadata: Option<ProviderMetadata>,
11    },
12    /// A file represented by its URL.
13    Url {
14        url: String,
15        provider_metadata: Option<ProviderMetadata>,
16    },
17}
18
19/// Represents the data of a file, which can be either a data URL or raw bytes.
20#[derive(Debug, Clone)]
21pub enum ImageModelFileData {
22    /// A file represented as a data URL.
23    DataUrl(String),
24    /// A file represented as raw bytes.
25    Bytes(Vec<u8>),
26}