summaryrefslogtreecommitdiffstats
path: root/src/doxygen
diff options
context:
space:
mode:
Diffstat (limited to 'src/doxygen')
-rw-r--r--src/doxygen/builders.rs109
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 @@
1use super::*;
2
3pub(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)]
12struct NameSpaceBuilder {
13 name: Option<String>,
14 members: Vec<String>,
15 brief_description: Option<Description>,
16 detailed_description: Option<Description>,
17}
18
19impl 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)]
53struct UnhandledBuilder;
54
55impl 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)]
69struct 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
77impl 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}