diff options
Diffstat (limited to 'src/doxygen')
-rw-r--r-- | src/doxygen/builders.rs | 109 |
1 files changed, 0 insertions, 109 deletions
diff --git a/src/doxygen/builders.rs b/src/doxygen/builders.rs deleted file mode 100644 index 9b60325..0000000 --- a/src/doxygen/builders.rs +++ /dev/null | |||
@@ -1,109 +0,0 @@ | |||
1 | use super::*; | ||
2 | |||
3 | pub(super) fn builder_for(doxygen_kind: String) -> Box<dyn TypeBuilder> { | ||
4 | match doxygen_kind.as_str() { | ||
5 | "namespace" => Box::new(NameSpaceBuilder::default()), | ||
6 | "class" | "struct" => Box::new(ClassBuilder::default()), | ||
7 | _ => Box::new(UnhandledBuilder), | ||
8 | } | ||
9 | } | ||
10 | |||
11 | #[derive(Debug, Default)] | ||
12 | struct NameSpaceBuilder { | ||
13 | name: Option<String>, | ||
14 | members: Vec<String>, | ||
15 | brief_description: Option<Description>, | ||
16 | detailed_description: Option<Description>, | ||
17 | } | ||
18 | |||
19 | impl TypeBuilder for NameSpaceBuilder { | ||
20 | fn build(self: Box<Self>) -> DoxygenType { | ||
21 | let name = self.name.unwrap(); | ||
22 | |||
23 | DoxygenType::NameSpace(NameSpace { | ||
24 | name, | ||
25 | members: self.members, | ||
26 | brief_description: self.brief_description.unwrap(), | ||
27 | detailed_description: self.detailed_description.unwrap(), | ||
28 | }) | ||
29 | } | ||
30 | |||
31 | fn name(&mut self, value: String) { | ||
32 | self.name = Some(value); | ||
33 | } | ||
34 | |||
35 | fn add_inner(&mut self, name: String, kind: String) { | ||
36 | self.members.push(name); | ||
37 | } | ||
38 | |||
39 | fn add_member(&mut self, _section: String, _member: Member) { | ||
40 | panic!("Adding member in namespace?"); | ||
41 | } | ||
42 | |||
43 | fn brief_description(&mut self, description: Description) { | ||
44 | self.brief_description = Some(description); | ||
45 | } | ||
46 | |||
47 | fn detailed_description(&mut self, description: Description) { | ||
48 | self.brief_description = Some(description); | ||
49 | } | ||
50 | } | ||
51 | |||
52 | #[derive(Debug, Default)] | ||
53 | struct UnhandledBuilder; | ||
54 | |||
55 | impl TypeBuilder for UnhandledBuilder { | ||
56 | fn build(self: Box<Self>) -> DoxygenType { | ||
57 | DoxygenType::Unhandled | ||
58 | } | ||
59 | |||
60 | fn name(&mut self, _value: String) {} | ||
61 | |||
62 | fn add_inner(&mut self, _name: String, _kind: String) {} | ||
63 | fn add_member(&mut self, _section: String, _member: Member) {} | ||
64 | fn brief_description(&mut self, _description: Description) {} | ||
65 | fn detailed_description(&mut self, _description: Description) {} | ||
66 | } | ||
67 | |||
68 | #[derive(Debug, Default)] | ||
69 | struct ClassBuilder { | ||
70 | name: Option<String>, | ||
71 | inners: Vec<(String, String)>, | ||
72 | sections: HashMap<String, Vec<Member>>, | ||
73 | brief_description: Option<Description>, | ||
74 | detailed_description: Option<Description>, | ||
75 | } | ||
76 | |||
77 | impl TypeBuilder for ClassBuilder { | ||
78 | fn build(self: Box<Self>) -> DoxygenType { | ||
79 | let name = self.name.unwrap(); | ||
80 | |||
81 | DoxygenType::Class(Class { | ||
82 | name, | ||
83 | inners: self.inners, | ||
84 | sections: self.sections, | ||
85 | brief_description: self.brief_description.unwrap_or(Description::new()), | ||
86 | detailed_description: self.detailed_description.unwrap_or(Description::new()), | ||
87 | }) | ||
88 | } | ||
89 | |||
90 | fn name(&mut self, value: String) { | ||
91 | self.name = Some(value); | ||
92 | } | ||
93 | |||
94 | fn add_inner(&mut self, name: String, kind: String) { | ||
95 | self.inners.push((name, kind)); | ||
96 | } | ||
97 | |||
98 | fn add_member(&mut self, section: String, member: Member) { | ||
99 | self.sections.entry(section).or_default().push(member); | ||
100 | } | ||
101 | |||
102 | fn brief_description(&mut self, description: Description) { | ||
103 | self.brief_description = Some(description); | ||
104 | } | ||
105 | |||
106 | fn detailed_description(&mut self, description: Description) { | ||
107 | self.brief_description = Some(description); | ||
108 | } | ||
109 | } | ||