25 lines
602 B
Rust
25 lines
602 B
Rust
|
|
use schemars::JsonSchema;
|
|||
|
|
use serde::Deserialize;
|
|||
|
|
use serde::Serialize;
|
|||
|
|
use ts_rs::TS;
|
|||
|
|
|
|||
|
|
/// User input
|
|||
|
|
#[non_exhaustive]
|
|||
|
|
#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, TS, JsonSchema)]
|
|||
|
|
#[serde(tag = "type", rename_all = "snake_case")]
|
|||
|
|
pub enum UserInput {
|
|||
|
|
Text {
|
|||
|
|
text: String,
|
|||
|
|
},
|
|||
|
|
/// Pre‑encoded data: URI image.
|
|||
|
|
Image {
|
|||
|
|
image_url: String,
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
/// Local image path provided by the user. This will be converted to an
|
|||
|
|
/// `Image` variant (base64 data URL) during request serialization.
|
|||
|
|
LocalImage {
|
|||
|
|
path: std::path::PathBuf,
|
|||
|
|
},
|
|||
|
|
}
|