1
1
use nom:: IResult ;
2
+ use nom:: Parser ;
2
3
3
4
use crate :: data:: Flag ;
4
5
use crate :: data:: Flags ;
@@ -47,11 +48,12 @@ pub fn variable_u64(i: &[u8]) -> IResult<&[u8], u64> {
47
48
}
48
49
49
50
pub fn format_descriptor ( i : & [ u8 ] ) -> IResult < & [ u8 ] , & [ u8 ] > {
50
- nom:: bytes:: streaming:: tag ( [ 0x01 , 0xF9 , 0xEC ] ) ( i)
51
+ // NOTE: for some reason `nom::bytes::tag`
52
+ nom:: combinator:: verify ( nom:: bytes:: take ( 3u32 ) , |x : & [ u8 ] | x == & [ 0x01 , 0xF9 , 0xEC ] ) . parse ( i)
51
53
}
52
54
53
55
pub fn format_version ( i : & [ u8 ] ) -> IResult < & [ u8 ] , FormatVersion > {
54
- match nom:: combinator:: verify ( self :: byte, |& byte: & u8 | byte == 1 || byte == 2 ) ( i) {
56
+ match nom:: combinator:: verify ( self :: byte, |& byte: & u8 | byte == 1 || byte == 2 ) . parse ( i) {
55
57
Err ( e) => Err ( e) ,
56
58
Ok ( ( i, 1 ) ) => Ok ( ( i, FormatVersion :: V1 ) ) ,
57
59
Ok ( ( i, 2 ) ) => Ok ( ( i, FormatVersion :: V2 ) ) ,
@@ -60,7 +62,7 @@ pub fn format_version(i: &[u8]) -> IResult<&[u8], FormatVersion> {
60
62
}
61
63
62
64
pub fn sequence_type ( i : & [ u8 ] ) -> IResult < & [ u8 ] , SequenceType > {
63
- match nom:: combinator:: verify ( self :: byte, |& byte: & u8 | byte <= 0x03 ) ( i) {
65
+ match nom:: combinator:: verify ( self :: byte, |& byte: & u8 | byte <= 0x03 ) . parse ( i) {
64
66
Err ( e) => Err ( e) ,
65
67
Ok ( ( i, 0 ) ) => Ok ( ( i, SequenceType :: Dna ) ) ,
66
68
Ok ( ( i, 1 ) ) => Ok ( ( i, SequenceType :: Rna ) ) ,
@@ -83,7 +85,9 @@ pub fn flags(i: &[u8]) -> IResult<&[u8], Flags> {
83
85
}
84
86
85
87
pub fn name_separator ( i : & [ u8 ] ) -> IResult < & [ u8 ] , char > {
86
- nom:: combinator:: verify ( self :: byte, self :: is_printable) ( i) . map ( |( i, c) | ( i, c as char ) )
88
+ nom:: combinator:: verify ( self :: byte, self :: is_printable)
89
+ . parse ( i)
90
+ . map ( |( i, c) | ( i, c as char ) )
87
91
}
88
92
89
93
pub fn line_length ( i : & [ u8 ] ) -> IResult < & [ u8 ] , u64 > {
@@ -129,7 +133,8 @@ pub fn title(i: &[u8]) -> IResult<&[u8], &str> {
129
133
let ( i, text) = nom:: combinator:: map_res (
130
134
nom:: bytes:: streaming:: take ( size as usize ) ,
131
135
std:: str:: from_utf8,
132
- ) ( i) ?;
136
+ )
137
+ . parse ( i) ?;
133
138
Ok ( ( i, text) )
134
139
}
135
140
0 commit comments