easyofd_core/versions/
file.rs1#[derive(Debug, Clone)]
7pub struct File {
8 pub name: String,
10 pub size: u64,
12}
13
14impl File {
15 #[must_use]
17 pub fn new(name: impl Into<String>, size: u64) -> Self {
18 Self {
19 name: name.into(),
20 size,
21 }
22 }
23
24 #[must_use]
26 pub fn to_xml_string(&self) -> String {
27 format!("<File Name=\"{}\" Size=\"{}\"/>", self.name, self.size)
28 }
29}
30
31#[cfg(test)]
32mod tests {
33 use super::*;
34
35 #[test]
36 fn test_file_new() {
37 let f = File::new("OFD.xml", 1024);
38 assert_eq!(f.name, "OFD.xml");
39 assert_eq!(f.size, 1024);
40 }
41
42 #[test]
43 fn test_file_xml() {
44 let f = File::new("Doc_0/Content.xml", 4096);
45 let xml = f.to_xml_string();
46 assert!(xml.contains("Name=\"Doc_0/Content.xml\""));
47 assert!(xml.contains("Size=\"4096\""));
48 assert!(xml.contains("/>"));
49 }
50}