printobserver_types/
context.rs1use schemars::JsonSchema;
4use serde::{Deserialize, Serialize};
5
6use crate::event::EventRecord;
7use crate::image::ImageRef;
8use crate::intervention::Intervention;
9use crate::manifest::JobManifest;
10use crate::policy::EffectiveBounds;
11use crate::print::PrintRecord;
12use crate::printer::{JobSnapshot, PrinterSnapshot};
13
14#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, JsonSchema)]
16#[serde(deny_unknown_fields)]
17pub struct PrintContext {
18 pub print: PrintRecord,
20 #[serde(default, skip_serializing_if = "Option::is_none")]
22 pub printer: Option<PrinterSnapshot>,
23 #[serde(default, skip_serializing_if = "Option::is_none")]
25 pub job: Option<JobSnapshot>,
26 #[serde(default, skip_serializing_if = "Option::is_none")]
28 pub manifest: Option<JobManifest>,
29 pub bounds: EffectiveBounds,
31 pub interventions: Vec<Intervention>,
33 pub recent_events: Vec<EventRecord>,
35 #[serde(default, skip_serializing_if = "Option::is_none")]
37 pub latest_image: Option<ImageRef>,
38}