@@ -169,38 +169,6 @@ pub fn parse_expunge(
169169 }
170170}
171171
172- pub fn parse_capabilities (
173- lines : Vec < u8 > ,
174- unsolicited : & mut mpsc:: Sender < UnsolicitedResponse > ,
175- ) -> ZeroCopyResult < Capabilities > {
176- let f = |mut lines| {
177- let mut caps = HashSet :: new ( ) ;
178- loop {
179- match imap_proto:: parser:: parse_response ( lines) {
180- Ok ( ( rest, Response :: Capabilities ( c) ) ) => {
181- lines = rest;
182- caps. extend ( c) ;
183- }
184- Ok ( ( rest, data) ) => {
185- lines = rest;
186- if let Some ( resp) = try_handle_unilateral ( data, unsolicited) {
187- break Err ( resp. into ( ) ) ;
188- }
189- }
190- _ => {
191- break Err ( Error :: Parse ( ParseError :: Invalid ( lines. to_vec ( ) ) ) ) ;
192- }
193- }
194-
195- if lines. is_empty ( ) {
196- break Ok ( Capabilities ( caps) ) ;
197- }
198- }
199- } ;
200-
201- unsafe { ZeroCopy :: make ( lines, f) }
202- }
203-
204172pub fn parse_noop (
205173 lines : Vec < u8 > ,
206174 unsolicited : & mut mpsc:: Sender < UnsolicitedResponse > ,
@@ -456,7 +424,7 @@ mod tests {
456424 ] ;
457425 let lines = b"* CAPABILITY IMAP4rev1 STARTTLS AUTH=GSSAPI LOGINDISABLED\r \n " ;
458426 let ( mut send, recv) = mpsc:: channel ( ) ;
459- let capabilities = parse_capabilities ( lines. to_vec ( ) , & mut send) . unwrap ( ) ;
427+ let capabilities = Capabilities :: parse ( lines. to_vec ( ) , & mut send) . unwrap ( ) ;
460428 // shouldn't be any unexpected responses parsed
461429 assert ! ( recv. try_recv( ) . is_err( ) ) ;
462430 assert_eq ! ( capabilities. len( ) , 4 ) ;
@@ -474,7 +442,7 @@ mod tests {
474442 ] ;
475443 let lines = b"* CAPABILITY IMAP4REV1 STARTTLS\r \n " ;
476444 let ( mut send, recv) = mpsc:: channel ( ) ;
477- let capabilities = parse_capabilities ( lines. to_vec ( ) , & mut send) . unwrap ( ) ;
445+ let capabilities = Capabilities :: parse ( lines. to_vec ( ) , & mut send) . unwrap ( ) ;
478446 // shouldn't be any unexpected responses parsed
479447 assert ! ( recv. try_recv( ) . is_err( ) ) ;
480448 assert_eq ! ( capabilities. len( ) , 2 ) ;
@@ -488,7 +456,7 @@ mod tests {
488456 fn parse_capability_invalid_test ( ) {
489457 let ( mut send, recv) = mpsc:: channel ( ) ;
490458 let lines = b"* JUNK IMAP4rev1 STARTTLS AUTH=GSSAPI LOGINDISABLED\r \n " ;
491- parse_capabilities ( lines. to_vec ( ) , & mut send) . unwrap ( ) ;
459+ Capabilities :: parse ( lines. to_vec ( ) , & mut send) . unwrap ( ) ;
492460 assert ! ( recv. try_recv( ) . is_err( ) ) ;
493461 }
494462
@@ -605,7 +573,7 @@ mod tests {
605573 * STATUS dev.github (MESSAGES 10 UIDNEXT 11 UIDVALIDITY 1408806928 UNSEEN 0)\r \n \
606574 * 4 EXISTS\r \n ";
607575 let ( mut send, recv) = mpsc:: channel ( ) ;
608- let capabilities = parse_capabilities ( lines. to_vec ( ) , & mut send) . unwrap ( ) ;
576+ let capabilities = Capabilities :: parse ( lines. to_vec ( ) , & mut send) . unwrap ( ) ;
609577
610578 assert_eq ! ( capabilities. len( ) , 4 ) ;
611579 for e in expected_capabilities {
0 commit comments