imagegen_bridge_core/
schema.rs1use schemars::JsonSchema;
4use serde::{Deserialize, Serialize};
5
6use crate::{
7 BridgeError, ImageJob, ImageJobPage, ImageJobUpdate, ImagePreset, ImagePresetCreate,
8 ImagePresetPage, ImagePresetWrite, ImageRequest, ImageResponse, ProviderCapabilities,
9 ProviderDescriptor, ProviderEvent, ValidationIssue,
10};
11
12#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema)]
14#[serde(tag = "message", content = "body", rename_all = "snake_case")]
15pub enum ContractMessage {
16 Request(ImageRequest),
18 Response(ImageResponse),
20 Capabilities(ProviderCapabilities),
22 Provider(ProviderDescriptor),
24 Event(ProviderEvent),
26 Job(Box<ImageJob>),
28 JobPage(ImageJobPage),
30 JobUpdate(ImageJobUpdate),
32 Preset(ImagePreset),
34 PresetCreate(ImagePresetCreate),
36 PresetWrite(ImagePresetWrite),
38 PresetPage(ImagePresetPage),
40 Error(BridgeError),
42 ValidationIssue(ValidationIssue),
44}
45
46#[must_use]
48pub fn contract_schema() -> schemars::Schema {
49 schemars::schema_for!(ContractMessage)
50}