1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#[derive(Default)]
pub struct Properties<'a> {
    pub(crate) title: Option<&'a str>,
    pub(crate) subject: Option<&'a str>,
    pub(crate) author: Option<&'a str>,
    pub(crate) manager: Option<&'a str>,
    pub(crate) company: Option<&'a str>,
    pub(crate) category: Option<&'a str>,
    pub(crate) keywords: Option<&'a str>,
    pub(crate) comments: Option<&'a str>,
    pub(crate) status: Option<&'a str>,
}

impl<'a> Properties<'a> {
    pub fn set_title(&mut self, title: &'a str) -> &mut Self {
        self.title = Some(title);
        self
    }

    pub fn set_subject(&mut self, subject: &'a str) -> &mut Self {
        self.subject = Some(subject);
        self
    }

    pub fn set_author(&mut self, author: &'a str) -> &mut Self {
        self.author = Some(author);
        self
    }

    pub fn set_manager(&mut self, manager: &'a str) -> &mut Self {
        self.manager = Some(manager);
        self
    }

    pub fn set_company(&mut self, company: &'a str) -> &mut Self {
        self.company = Some(company);
        self
    }

    pub fn set_category(&mut self, category: &'a str) -> &mut Self {
        self.category = Some(category);
        self
    }

    pub fn set_keywords(&mut self, keywords: &'a str) -> &mut Self {
        self.keywords = Some(keywords);
        self
    }

    pub fn set_comments(&mut self, comments: &'a str) -> &mut Self {
        self.comments = Some(comments);
        self
    }

    pub fn set_status(&mut self, status: &'a str) -> &mut Self {
        self.status = Some(status);
        self
    }
}