easyofd_core/doc/
doc_dir.rs1#[derive(Debug, Clone)]
13pub struct DocDir {
14 pub index: u32,
16 pub document_file_name: String,
18 pub public_res_file_name: String,
20 pub document_res_file_name: String,
22 pub signs_dir_name: String,
24 pub pages_dir_name: String,
26 pub res_dir_name: String,
28 pub annots_dir_name: String,
30 pub annotations_file_name: String,
32 pub attachments_file_name: String,
34}
35
36impl DocDir {
37 pub const DOC_CONTAINER_PREFIX: &'static str = "Doc_";
39 pub const DOCUMENT_FILE_NAME: &'static str = "Document.xml";
41 pub const PUBLIC_RES_FILE_NAME: &'static str = "PublicRes.xml";
43 pub const DOCUMENT_RES_FILE_NAME: &'static str = "DocumentRes.xml";
45 pub const SIGNS_DIR_NAME: &'static str = "Signs";
47 pub const SIGN_CONTAINER_PREFIX: &'static str = "Sign_";
49 pub const TAGS_DIR_NAME: &'static str = "Tags";
51 pub const TEMPS_DIR_NAME: &'static str = "Temps";
53 pub const PAGES_DIR_NAME: &'static str = "Pages";
55 pub const PAGE_CONTAINER_PREFIX: &'static str = "Page_";
57 pub const RES_DIR_NAME: &'static str = "Res";
59 pub const ANNOTS_DIR_NAME: &'static str = "Annots";
61 pub const ANNOTATIONS_FILE_NAME: &'static str = "Annotations.xml";
63 pub const ATTACHMENTS_FILE_NAME: &'static str = "Attachments.xml";
65
66 #[must_use]
68 pub fn new(index: u32) -> Self {
69 Self {
70 index,
71 document_file_name: Self::DOCUMENT_FILE_NAME.to_string(),
72 public_res_file_name: Self::PUBLIC_RES_FILE_NAME.to_string(),
73 document_res_file_name: Self::DOCUMENT_RES_FILE_NAME.to_string(),
74 signs_dir_name: Self::SIGNS_DIR_NAME.to_string(),
75 pages_dir_name: Self::PAGES_DIR_NAME.to_string(),
76 res_dir_name: Self::RES_DIR_NAME.to_string(),
77 annots_dir_name: Self::ANNOTS_DIR_NAME.to_string(),
78 annotations_file_name: Self::ANNOTATIONS_FILE_NAME.to_string(),
79 attachments_file_name: Self::ATTACHMENTS_FILE_NAME.to_string(),
80 }
81 }
82
83 #[must_use]
85 pub fn container_name(&self) -> String {
86 format!("{}{}", Self::DOC_CONTAINER_PREFIX, self.index)
87 }
88
89 pub fn index(&self) -> u32 {
91 self.index
92 }
93}
94
95#[cfg(test)]
96mod tests {
97 use super::*;
98
99 #[test]
100 fn test_doc_dir_new() {
101 let dd = DocDir::new(0);
102 assert_eq!(dd.index, 0);
103 assert_eq!(dd.document_file_name, "Document.xml");
104 assert_eq!(dd.signs_dir_name, "Signs");
105 assert_eq!(dd.pages_dir_name, "Pages");
106 }
107
108 #[test]
109 fn test_doc_dir_container_name() {
110 assert_eq!(DocDir::new(0).container_name(), "Doc_0");
111 assert_eq!(DocDir::new(3).container_name(), "Doc_3");
112 }
113
114 #[test]
115 fn test_doc_dir_constants() {
116 assert_eq!(DocDir::DOC_CONTAINER_PREFIX, "Doc_");
117 assert_eq!(DocDir::DOCUMENT_FILE_NAME, "Document.xml");
118 assert_eq!(DocDir::SIGNS_DIR_NAME, "Signs");
119 assert_eq!(DocDir::PAGES_DIR_NAME, "Pages");
120 assert_eq!(DocDir::RES_DIR_NAME, "Res");
121 assert_eq!(DocDir::SIGN_CONTAINER_PREFIX, "Sign_");
122 }
123
124 #[test]
125 fn test_doc_dir_index() {
126 let dd = DocDir::new(5);
127 assert_eq!(dd.index(), 5);
128 }
129}