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}