@@ -58,15 +58,14 @@ impl Schedule {
58
58
59
59
pub fn add_stage < S : Stage > ( & mut self , name : & str , stage : S ) -> & mut Self {
60
60
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
+ }
62
65
self
63
66
}
64
67
65
68
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
-
70
69
let target_index = self
71
70
. stage_order
72
71
. iter ( )
@@ -75,16 +74,15 @@ impl Schedule {
75
74
. map ( |( i, _) | i)
76
75
. unwrap_or_else ( || panic ! ( "Target stage does not exist: {}." , target) ) ;
77
76
78
- self . stages . insert ( name. to_string ( ) , Box :: new ( stage) ) ;
79
77
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
+ }
80
82
self
81
83
}
82
84
83
85
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
-
88
86
let target_index = self
89
87
. stage_order
90
88
. iter ( )
@@ -93,8 +91,11 @@ impl Schedule {
93
91
. map ( |( i, _) | i)
94
92
. unwrap_or_else ( || panic ! ( "Target stage does not exist: {}." , target) ) ;
95
93
96
- self . stages . insert ( name. to_string ( ) , Box :: new ( stage) ) ;
97
94
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
+ }
98
99
self
99
100
}
100
101
0 commit comments