@@ -90,7 +90,7 @@ fn main() {
9090 assert ! ( !include_statements. is_empty( ) ) ;
9191
9292 // Generate the populated assembly module
93- let populated: Module = Input :: new ( ModuleType :: Assembly , title, & options)
93+ let populated: Module = Input :: new ( & ModuleType :: Assembly , title, & options)
9494 . include ( include_statements)
9595 . into ( ) ;
9696
@@ -105,26 +105,18 @@ fn process_module_type(
105105 module_type_str : & str ,
106106 options : & Options ,
107107) -> Vec < Module > {
108- let mut modules_from_type = Vec :: new ( ) ;
109-
110- for title in titles {
111- // Convert the string module type to an enum.
112- // This must be done for each title separately so that the title can own the ModuleType.
113- let module_type = match module_type_str {
114- "assembly" => ModuleType :: Assembly ,
115- "include-in" => ModuleType :: Assembly ,
116- "concept" => ModuleType :: Concept ,
117- "procedure" => ModuleType :: Procedure ,
118- "reference" => ModuleType :: Reference ,
119- _ => unimplemented ! ( ) ,
120- } ;
121-
122- let module = Module :: new ( module_type, title, & options) ;
123-
124- modules_from_type. push ( module) ;
125- }
108+ let module_type = match module_type_str {
109+ "assembly" => ModuleType :: Assembly ,
110+ "include-in" => ModuleType :: Assembly ,
111+ "concept" => ModuleType :: Concept ,
112+ "procedure" => ModuleType :: Procedure ,
113+ "reference" => ModuleType :: Reference ,
114+ _ => unimplemented ! ( ) ,
115+ } ;
116+
117+ let modules_from_type = titles. map ( |title| Module :: new ( & module_type, title, & options) ) ;
126118
127- modules_from_type
119+ modules_from_type. collect ( )
128120}
129121
130122// These tests act as pseudo-integration tests. They let the top-level functions generate
@@ -149,7 +141,7 @@ mod tests {
149141 /// Test that we generate the assembly that we expect.
150142 #[ test]
151143 fn test_assembly ( ) {
152- let mod_type = ModuleType :: Assembly ;
144+ let mod_type = & ModuleType :: Assembly ;
153145 let mod_title = "Testing that an assembly forms properly" ;
154146 let options = basic_options ( ) ;
155147 let assembly = Module :: new ( mod_type, mod_title, & options) ;
@@ -163,7 +155,7 @@ mod tests {
163155 /// Test that we generate the concept module that we expect.
164156 #[ test]
165157 fn test_concept_module ( ) {
166- let mod_type = ModuleType :: Concept ;
158+ let mod_type = & ModuleType :: Concept ;
167159 let mod_title = "A title that tests a concept" ;
168160 let options = basic_options ( ) ;
169161 let concept = Module :: new ( mod_type, mod_title, & options) ;
@@ -176,7 +168,7 @@ mod tests {
176168 /// Test that we generate the procedure module that we expect.
177169 #[ test]
178170 fn test_procedure_module ( ) {
179- let mod_type = ModuleType :: Procedure ;
171+ let mod_type = & ModuleType :: Procedure ;
180172 let mod_title = "Testing a procedure" ;
181173 let options = basic_options ( ) ;
182174 let procedure = Module :: new ( mod_type, mod_title, & options) ;
@@ -189,7 +181,7 @@ mod tests {
189181 /// Test that we generate the reference module that we expect.
190182 #[ test]
191183 fn test_reference_module ( ) {
192- let mod_type = ModuleType :: Reference ;
184+ let mod_type = & ModuleType :: Reference ;
193185 let mod_title = "The lines in a reference module" ;
194186 let options = basic_options ( ) ;
195187 let reference = Module :: new ( mod_type, mod_title, & options) ;
0 commit comments