ofd_core/model/
annotation.rs1use serde::{Deserialize, Serialize};
15
16use crate::model::graphics::PageBlock;
17use crate::types::{StBox, StId, StLoc, StRefId};
18
19#[derive(Debug, Clone, Default, Deserialize, Serialize)]
21pub struct Annotations {
22 #[serde(rename = "Page", default)]
24 pub pages: Vec<AnnotPageRef>,
25}
26
27#[derive(Debug, Clone, Default, Deserialize, Serialize)]
29pub struct AnnotPageRef {
30 #[serde(rename = "@PageID")]
32 pub page_id: StRefId,
33 #[serde(rename = "FileLoc")]
35 pub file_loc: StLoc,
36}
37
38#[derive(Debug, Clone, Default, Deserialize, Serialize)]
40pub struct PageAnnot {
41 #[serde(rename = "Annot", default)]
43 pub annots: Vec<Annot>,
44}
45
46#[derive(Debug, Clone, Default, Deserialize, Serialize)]
48pub struct Annot {
49 #[serde(rename = "@ID")]
51 pub id: Option<StId>,
52 #[serde(rename = "@Type")]
54 pub annot_type: Option<String>,
55 #[serde(rename = "@Visible")]
57 pub visible: Option<bool>,
58 #[serde(rename = "Appearance")]
60 pub appearance: Option<Appearance>,
61}
62
63#[derive(Debug, Clone, Default, Deserialize, Serialize)]
68pub struct Appearance {
69 #[serde(rename = "@Boundary", default)]
71 pub boundary: StBox,
72 #[serde(rename = "$value", default)]
74 pub objects: Vec<PageBlock>,
75}