1
- use crate :: packet_line:: {
2
- self , DELIMITER_LINE , ERR_PREFIX , FLUSH_LINE , MAX_DATA_LEN , MAX_LINE_LEN , RESPONSE_END_LINE , U16_HEX_BYTES ,
1
+ use crate :: {
2
+ packet_line:: {
3
+ DELIMITER_LINE , ERR_PREFIX , FLUSH_LINE , MAX_DATA_LEN , MAX_LINE_LEN , RESPONSE_END_LINE , U16_HEX_BYTES ,
4
+ } ,
5
+ PacketLine ,
3
6
} ;
4
7
use bstr:: BString ;
5
8
use quick_error:: quick_error;
@@ -27,7 +30,7 @@ quick_error! {
27
30
#[ derive( Debug , Clone ) ]
28
31
pub enum Stream < ' a > {
29
32
Complete {
30
- line : packet_line :: Borrowed < ' a > ,
33
+ line : PacketLine < ' a > ,
31
34
bytes_consumed : usize ,
32
35
} ,
33
36
Incomplete {
@@ -44,23 +47,17 @@ pub fn streaming(data: &[u8]) -> Result<Stream, Error> {
44
47
} ) ;
45
48
}
46
49
let hex_bytes = & data[ ..U16_HEX_BYTES ] ;
47
- if hex_bytes == FLUSH_LINE {
48
- return Ok ( Stream :: Complete {
49
- line : packet_line:: Borrowed :: Flush ,
50
- bytes_consumed : 4 ,
51
- } ) ;
52
- }
53
- if hex_bytes == DELIMITER_LINE {
54
- return Ok ( Stream :: Complete {
55
- line : packet_line:: Borrowed :: Delimiter ,
56
- bytes_consumed : 4 ,
57
- } ) ;
58
- }
59
- if hex_bytes == RESPONSE_END_LINE {
60
- return Ok ( Stream :: Complete {
61
- line : packet_line:: Borrowed :: ResponseEnd ,
62
- bytes_consumed : 4 ,
63
- } ) ;
50
+ for ( line_bytes, line_type) in & [
51
+ ( FLUSH_LINE , PacketLine :: Flush ) ,
52
+ ( DELIMITER_LINE , PacketLine :: Delimiter ) ,
53
+ ( RESPONSE_END_LINE , PacketLine :: ResponseEnd ) ,
54
+ ] {
55
+ if hex_bytes == * line_bytes {
56
+ return Ok ( Stream :: Complete {
57
+ line : * line_type,
58
+ bytes_consumed : 4 ,
59
+ } ) ;
60
+ }
64
61
}
65
62
66
63
let mut buf = [ 0u8 ; U16_HEX_BYTES / 2 ] ;
@@ -89,7 +86,7 @@ pub fn streaming(data: &[u8]) -> Result<Stream, Error> {
89
86
}
90
87
91
88
Ok ( Stream :: Complete {
92
- line : packet_line :: Borrowed :: Data ( data) ,
89
+ line : PacketLine :: Data ( data) ,
93
90
bytes_consumed : wanted_bytes,
94
91
} )
95
92
}
0 commit comments