1- use std:: { iter:: Peekable , ops :: RangeInclusive } ;
1+ use std:: iter:: Peekable ;
22
33use antithesis_sdk:: assert_always;
44pub use corro_api_types:: SqliteValue ;
55use corro_api_types:: { ColumnName , TableName } ;
6- use corro_base_types:: CrsqlDbVersion ;
6+ use corro_base_types:: { CrsqlDbVersion , CrsqlSeqRange } ;
77use rusqlite:: { Connection , Row } ;
88use serde:: { Deserialize , Serialize } ;
99use serde_json:: json;
@@ -104,7 +104,7 @@ impl<I> Iterator for ChunkedChanges<I>
104104where
105105 I : Iterator < Item = rusqlite:: Result < Change > > ,
106106{
107- type Item = Result < ( Vec < Change > , RangeInclusive < CrsqlSeq > ) , rusqlite:: Error > ;
107+ type Item = Result < ( Vec < Change > , CrsqlSeqRange ) , rusqlite:: Error > ;
108108
109109 fn next ( & mut self ) -> Option < Self :: Item > {
110110 // previously marked as done because the Rows iterator returned None
@@ -153,7 +153,7 @@ where
153153
154154 return Some ( Ok ( (
155155 self . changes . drain ( ..) . collect ( ) ,
156- start_seq..= self . last_pushed_seq ,
156+ CrsqlSeqRange :: new ( start_seq, self . last_pushed_seq ) ,
157157 ) ) ) ;
158158 }
159159 }
@@ -171,8 +171,8 @@ where
171171
172172 // return buffered changes
173173 Some ( Ok ( (
174- self . changes . clone ( ) , // no need to drain here like before
175- self . last_start_seq ..= self . last_seq , // even if empty, this is all we have still applied
174+ self . changes . clone ( ) , // no need to drain here like before
175+ CrsqlSeqRange :: new ( self . last_start_seq , self . last_seq ) , // even if empty, this is all we have still applied
176176 ) ) )
177177 }
178178}
@@ -262,14 +262,14 @@ pub fn insert_local_changes(
262262#[ cfg( test) ]
263263mod tests {
264264 use super :: * ;
265- use crate :: base:: dbsri ;
265+ use crate :: base:: dbsr ;
266266
267267 #[ test]
268268 fn test_change_chunker ( ) {
269269 // empty interator
270270 let mut chunker = ChunkedChanges :: new ( vec ! [ ] . into_iter ( ) , CrsqlSeq ( 0 ) , CrsqlSeq ( 100 ) , 50 ) ;
271271
272- assert_eq ! ( chunker. next( ) , Some ( Ok ( ( vec![ ] , dbsri !( 0 , 100 ) ) ) ) ) ;
272+ assert_eq ! ( chunker. next( ) , Some ( Ok ( ( vec![ ] , dbsr !( 0 , 100 ) ) ) ) ) ;
273273 assert_eq ! ( chunker. next( ) , None ) ;
274274
275275 let changes: Vec < Change > = ( 0 ..100 )
@@ -296,12 +296,12 @@ mod tests {
296296 chunker. next( ) ,
297297 Some ( Ok ( (
298298 vec![ changes[ 0 ] . clone( ) , changes[ 1 ] . clone( ) ] ,
299- dbsri !( 0 , 1 )
299+ dbsr !( 0 , 1 )
300300 ) ) )
301301 ) ;
302302 assert_eq ! (
303303 chunker. next( ) ,
304- Some ( Ok ( ( vec![ changes[ 2 ] . clone( ) ] , dbsri !( 2 , 100 ) ) ) )
304+ Some ( Ok ( ( vec![ changes[ 2 ] . clone( ) ] , dbsr !( 2 , 100 ) ) ) )
305305 ) ;
306306 assert_eq ! ( chunker. next( ) , None ) ;
307307
@@ -314,7 +314,7 @@ mod tests {
314314
315315 assert_eq ! (
316316 chunker. next( ) ,
317- Some ( Ok ( ( vec![ changes[ 0 ] . clone( ) ] , dbsri !( 0 , 0 ) ) ) )
317+ Some ( Ok ( ( vec![ changes[ 0 ] . clone( ) ] , dbsr !( 0 , 0 ) ) ) )
318318 ) ;
319319 assert_eq ! ( chunker. next( ) , None ) ;
320320
@@ -330,7 +330,7 @@ mod tests {
330330 chunker. next( ) ,
331331 Some ( Ok ( (
332332 vec![ changes[ 0 ] . clone( ) , changes[ 2 ] . clone( ) ] ,
333- dbsri !( 0 , 100 )
333+ dbsr !( 0 , 100 )
334334 ) ) )
335335 ) ;
336336
@@ -359,7 +359,7 @@ mod tests {
359359 changes[ 7 ] . clone( ) ,
360360 changes[ 8 ] . clone( )
361361 ] ,
362- dbsri !( 0 , 100 )
362+ dbsr !( 0 , 100 )
363363 ) ) )
364364 ) ;
365365
@@ -383,15 +383,15 @@ mod tests {
383383 chunker. next( ) ,
384384 Some ( Ok ( (
385385 vec![ changes[ 2 ] . clone( ) , changes[ 4 ] . clone( ) , ] ,
386- dbsri !( 0 , 4 )
386+ dbsr !( 0 , 4 )
387387 ) ) )
388388 ) ;
389389
390390 assert_eq ! (
391391 chunker. next( ) ,
392392 Some ( Ok ( (
393393 vec![ changes[ 7 ] . clone( ) , changes[ 8 ] . clone( ) , ] ,
394- dbsri !( 5 , 10 )
394+ dbsr !( 5 , 10 )
395395 ) ) )
396396 ) ;
397397
0 commit comments