@@ -58,15 +58,14 @@ impl Schedule {
5858
5959 pub fn add_stage < S : Stage > ( & mut self , name : & str , stage : S ) -> & mut Self {
6060 self . stage_order . push ( name. to_string ( ) ) ;
61- self . stages . insert ( name. to_string ( ) , Box :: new ( stage) ) ;
61+ let prev = self . stages . insert ( name. to_string ( ) , Box :: new ( stage) ) ;
62+ if prev. is_some ( ) {
63+ panic ! ( "Stage already exists: {}." , name) ;
64+ }
6265 self
6366 }
6467
6568 pub fn add_stage_after < S : Stage > ( & mut self , target : & str , name : & str , stage : S ) -> & mut Self {
66- if self . stages . get ( name) . is_some ( ) {
67- panic ! ( "Stage already exists: {}." , name) ;
68- }
69-
7069 let target_index = self
7170 . stage_order
7271 . iter ( )
@@ -75,16 +74,15 @@ impl Schedule {
7574 . map ( |( i, _) | i)
7675 . unwrap_or_else ( || panic ! ( "Target stage does not exist: {}." , target) ) ;
7776
78- self . stages . insert ( name. to_string ( ) , Box :: new ( stage) ) ;
7977 self . stage_order . insert ( target_index + 1 , name. to_string ( ) ) ;
78+ let prev = self . stages . insert ( name. to_string ( ) , Box :: new ( stage) ) ;
79+ if prev. is_some ( ) {
80+ panic ! ( "Stage already exists: {}." , name) ;
81+ }
8082 self
8183 }
8284
8385 pub fn add_stage_before < S : Stage > ( & mut self , target : & str , name : & str , stage : S ) -> & mut Self {
84- if self . stages . get ( name) . is_some ( ) {
85- panic ! ( "Stage already exists: {}." , name) ;
86- }
87-
8886 let target_index = self
8987 . stage_order
9088 . iter ( )
@@ -93,8 +91,11 @@ impl Schedule {
9391 . map ( |( i, _) | i)
9492 . unwrap_or_else ( || panic ! ( "Target stage does not exist: {}." , target) ) ;
9593
96- self . stages . insert ( name. to_string ( ) , Box :: new ( stage) ) ;
9794 self . stage_order . insert ( target_index, name. to_string ( ) ) ;
95+ let prev = self . stages . insert ( name. to_string ( ) , Box :: new ( stage) ) ;
96+ if prev. is_some ( ) {
97+ panic ! ( "Stage already exists: {}." , name) ;
98+ }
9899 self
99100 }
100101
0 commit comments