#[derive(Debug, Clone)]
pub struct File {
pub name: String,
pub size: u64,
}
impl File {
#[must_use]
pub fn new(name: impl Into<String>, size: u64) -> Self {
Self {
name: name.into(),
size,
}
}
#[must_use]
pub fn to_xml_string(&self) -> String {
format!("<File Name=\"{}\" Size=\"{}\"/>", self.name, self.size)
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_file_new() {
let f = File::new("OFD.xml", 1024);
assert_eq!(f.name, "OFD.xml");
assert_eq!(f.size, 1024);
}
#[test]
fn test_file_xml() {
let f = File::new("Doc_0/Content.xml", 4096);
let xml = f.to_xml_string();
assert!(xml.contains("Name=\"Doc_0/Content.xml\""));
assert!(xml.contains("Size=\"4096\""));
assert!(xml.contains("/>"));
}
}