@@ -5,7 +5,7 @@ pub mod complete;
5
5
pub mod streaming;
6
6
7
7
use crate :: error:: { ErrorKind , ParseError } ;
8
- use crate :: internal:: { Err , IResult , Needed } ;
8
+ use crate :: internal:: { Err , IResult , Needed , Parser } ;
9
9
use crate :: lib:: std:: ops:: RangeFrom ;
10
10
use crate :: traits:: { ErrorConvert , Slice } ;
11
11
42
42
E1 : ParseError < ( I , usize ) > + ErrorConvert < E2 > ,
43
43
E2 : ParseError < I > ,
44
44
I : Slice < RangeFrom < usize > > ,
45
- P : FnMut ( ( I , usize ) ) -> IResult < ( I , usize ) , O , E1 > ,
45
+ P : Parser < ( I , usize ) , O , E1 > ,
46
46
{
47
- move |input : I | match parser ( ( input, 0 ) ) {
47
+ move |input : I | match parser. parse ( ( input, 0 ) ) {
48
48
Ok ( ( ( rest, offset) , result) ) => {
49
49
// If the next byte has been partially read, it will be sliced away as well.
50
50
// The parser functions might already slice away all fully read bytes.
88
88
E1 : ParseError < I > + ErrorConvert < E2 > ,
89
89
E2 : ParseError < ( I , usize ) > ,
90
90
I : Slice < RangeFrom < usize > > + Clone ,
91
- P : FnMut ( I ) -> IResult < I , O , E1 > ,
91
+ P : Parser < I , O , E1 > ,
92
92
{
93
93
move |( input, offset) : ( I , usize ) | {
94
94
let inner = if offset % 8 != 0 {
97
97
input. slice ( ( offset / 8 ) ..)
98
98
} ;
99
99
let i = ( input, offset) ;
100
- match parser ( inner) {
100
+ match parser. parse ( inner) {
101
101
Ok ( ( rest, res) ) => Ok ( ( ( rest, 0 ) , res) ) ,
102
102
Err ( Err :: Incomplete ( Needed :: Unknown ) ) => Err ( Err :: Incomplete ( Needed :: Unknown ) ) ,
103
103
Err ( Err :: Incomplete ( Needed :: Size ( sz) ) ) => Err ( match sz. get ( ) . checked_mul ( 8 ) {
0 commit comments