@@ -69,11 +69,12 @@ impl Commands {
69
69
state = add_code_segment_multi_line ( name, & mut self . state_machine , state) ;
70
70
} else if segment. starts_with ( "```" ) && segment. ends_with ( "```" ) {
71
71
let name = & segment[ 3 ..segment. len ( ) - 3 ] ;
72
- state = add_code_segment_single_line_long ( name, & mut self . state_machine , state) ;
72
+ state =
73
+ add_code_segment_single_line ( name, & mut self . state_machine , state, 3 ) ;
73
74
} else if segment. starts_with ( "`" ) && segment. ends_with ( "`" ) {
74
75
let name = & segment[ 1 ..segment. len ( ) - 1 ] ;
75
76
state =
76
- add_code_segment_single_line_short ( name, & mut self . state_machine , state) ;
77
+ add_code_segment_single_line ( name, & mut self . state_machine , state, 1 ) ;
77
78
} else if segment. starts_with ( "{" ) && segment. ends_with ( "}" ) {
78
79
let name = & segment[ 1 ..segment. len ( ) - 1 ] ;
79
80
state = add_dynamic_segment ( name, & mut self . state_machine , state) ;
@@ -218,36 +219,22 @@ fn add_code_segment_multi_line(
218
219
state
219
220
}
220
221
221
- fn add_code_segment_single_line_long (
222
+ fn add_code_segment_single_line (
222
223
name : & ' static str ,
223
224
state_machine : & mut StateMachine ,
224
225
mut state : usize ,
226
+ n_backticks : usize ,
225
227
) -> usize {
226
- state = state_machine. add ( state, CharacterSet :: from_char ( '`' ) ) ;
227
- state = state_machine. add ( state, CharacterSet :: from_char ( '`' ) ) ;
228
- state = state_machine. add ( state, CharacterSet :: from_char ( '`' ) ) ;
229
- state = state_machine. add ( state, CharacterSet :: any ( ) ) ;
230
- state_machine. add_next_state ( state, state) ;
231
- state_machine. start_parse ( state, name) ;
232
- state_machine. end_parse ( state) ;
233
- state = state_machine. add ( state, CharacterSet :: from_char ( '`' ) ) ;
234
- state = state_machine. add ( state, CharacterSet :: from_char ( '`' ) ) ;
235
- state = state_machine. add ( state, CharacterSet :: from_char ( '`' ) ) ;
236
-
237
- state
238
- }
239
-
240
- fn add_code_segment_single_line_short (
241
- name : & ' static str ,
242
- state_machine : & mut StateMachine ,
243
- mut state : usize ,
244
- ) -> usize {
245
- state = state_machine. add ( state, CharacterSet :: from_char ( '`' ) ) ;
228
+ ( 0 ..n_backticks) . for_each ( |_| {
229
+ state = state_machine. add ( state, CharacterSet :: from_char ( '`' ) ) ;
230
+ } ) ;
246
231
state = state_machine. add ( state, CharacterSet :: any ( ) ) ;
247
232
state_machine. add_next_state ( state, state) ;
248
233
state_machine. start_parse ( state, name) ;
249
234
state_machine. end_parse ( state) ;
250
- state = state_machine. add ( state, CharacterSet :: from_char ( '`' ) ) ;
235
+ ( 0 ..n_backticks) . for_each ( |_| {
236
+ state = state_machine. add ( state, CharacterSet :: from_char ( '`' ) ) ;
237
+ } ) ;
251
238
252
239
state
253
240
}
0 commit comments