File tree Expand file tree Collapse file tree 1 file changed +8
-9
lines changed
crates/conversions/src/serde Expand file tree Collapse file tree 1 file changed +8
-9
lines changed Original file line number Diff line number Diff line change @@ -17,25 +17,24 @@ pub type BufferReadResult<T> = Result<T, BufferReadError>;
17
17
18
18
pub struct BufferReader < ' a > {
19
19
buffer : & ' a [ Felt ] ,
20
- idx : usize ,
21
20
}
22
21
23
22
pub trait CairoDeserialize : Sized {
24
23
fn deserialize ( reader : & mut BufferReader < ' _ > ) -> BufferReadResult < Self > ;
25
24
}
26
25
27
- impl BufferReader < ' _ > {
26
+ impl < ' a > BufferReader < ' a > {
28
27
#[ must_use]
29
- pub fn new < ' a > ( buffer : & ' a [ Felt ] ) -> BufferReader < ' a > {
30
- BufferReader :: < ' a > { buffer, idx : 0 }
28
+ pub fn new ( buffer : & ' a [ Felt ] ) -> Self {
29
+ Self { buffer }
31
30
}
32
31
33
32
pub fn read_felt ( & mut self ) -> BufferReadResult < Felt > {
34
- let felt = self . buffer . get ( self . idx ) . copied ( ) ;
35
-
36
- self . idx += 1 ;
37
-
38
- felt . ok_or ( BufferReadError :: EndOfBuffer )
33
+ let [ head , tail @ .. ] = self . buffer else {
34
+ return Err ( BufferReadError :: EndOfBuffer ) ;
35
+ } ;
36
+ self . buffer = tail ;
37
+ Ok ( * head )
39
38
}
40
39
41
40
pub fn read < T > ( & mut self ) -> BufferReadResult < T >
You can’t perform that action at this time.
0 commit comments