@@ -85,23 +85,13 @@ pub fn parse(input: &str, comment_char: char) -> Vec<Token> {
85
85
} else if trailer. is_match ( line) {
86
86
toks. push ( Token :: Trailer ( line) ) ;
87
87
} else if let Some ( y) = match toks. last_mut ( ) {
88
- Some ( & mut Token :: Footnote ( _, ref mut b) ) => {
89
- b. push ( ' ' ) ;
90
- b. push_str ( line. trim ( ) ) ;
91
- None
92
- }
93
- Some ( & mut Token :: Paragraph ( ref mut b) ) => {
94
- b. push ( ' ' ) ;
95
- b. push_str ( line. trim ( ) ) ;
96
- None
97
- }
88
+ Some ( & mut Token :: Footnote ( _, ref mut b) ) => extend_prose_buffer_with_line ( b, line) ,
89
+ Some ( & mut Token :: Paragraph ( ref mut b) ) => extend_prose_buffer_with_line ( b, line) ,
98
90
Some ( & mut Token :: ListItem ( _, _, ref mut b) ) => {
99
91
if list_item. is_match ( line) {
100
92
Some ( list_item_from_line ( & list_item, line) )
101
93
} else {
102
- b. push ( ' ' ) ;
103
- b. push_str ( line. trim ( ) ) ;
104
- None
94
+ extend_prose_buffer_with_line ( b, line)
105
95
}
106
96
}
107
97
_ => {
@@ -180,6 +170,12 @@ fn list_item_from_line<'a>(pat: &Regex, line: &str) -> Token<'a> {
180
170
)
181
171
}
182
172
173
+ fn extend_prose_buffer_with_line ( ref mut buf: & mut String , line : & str ) -> Option < Token < ' static > > {
174
+ buf. push ( ' ' ) ;
175
+ buf. push_str ( line. trim ( ) ) ;
176
+ None
177
+ }
178
+
183
179
#[ cfg( test) ]
184
180
mod tests {
185
181
use super :: Token :: * ;
0 commit comments