17
17
//! let chunk2 = Chunk::new().prepend(3).prepend(4);
18
18
//! let combined = chunk1.concat(chunk2);
19
19
//!
20
- //! assert_eq!(combined.as_vec(), vec![&1, & 2, &3, &4 ]);
20
+ //! assert_eq!(combined.as_vec(), vec![2, 1, 4, 3 ]);
21
21
//! ```
22
22
23
23
use std:: rc:: Rc ;
@@ -51,7 +51,7 @@ use std::rc::Rc;
51
51
/// let other_chunk = Chunk::new().prepend(3).prepend(4);
52
52
/// let combined = chunk.concat(other_chunk);
53
53
///
54
- /// assert_eq!(combined.as_vec(), vec![& 1, &2, &3, &4 ]);
54
+ /// assert_eq!(combined.as_vec(), vec![2, 1, 4, 3 ]);
55
55
/// ```
56
56
///
57
57
/// # References
@@ -118,7 +118,7 @@ impl<A> Chunk<A> {
118
118
/// use tailcall_chunk::Chunk;
119
119
///
120
120
/// let chunk = Chunk::new().prepend(1).prepend(2);
121
- /// assert_eq!(chunk.as_vec(), vec![&1, &2 ]);
121
+ /// assert_eq!(chunk.as_vec(), vec![2, 1 ]);
122
122
/// ```
123
123
pub fn prepend ( self , a : A ) -> Self {
124
124
Chunk :: Prepend ( a, Rc :: new ( self ) )
@@ -140,7 +140,7 @@ impl<A> Chunk<A> {
140
140
/// let chunk1 = Chunk::new().prepend(1).prepend(2);
141
141
/// let chunk2 = Chunk::new().prepend(3).prepend(4);
142
142
/// let combined = chunk1.concat(chunk2);
143
- /// assert_eq!(combined.as_vec(), vec![&1, &2, &3, &4 ]);
143
+ /// assert_eq!(combined.as_vec(), vec![2,1, 4,3 ]);
144
144
/// ```
145
145
pub fn concat ( self , other : Chunk < A > ) -> Self {
146
146
if self . is_null ( ) {
@@ -174,7 +174,7 @@ impl<A> Chunk<A> {
174
174
/// // This operation is O(1) and doesn't actually transform the elements
175
175
/// let doubled = chunk.transform(|x| x * 2);
176
176
/// // The transformation happens here, when we call as_vec()
177
- /// assert_eq!(doubled.as_vec(), vec![& 6, & 4, & 2]);
177
+ /// assert_eq!(doubled.as_vec(), vec![6, 4, 2]);
178
178
/// ```
179
179
pub fn transform ( self , f : impl Fn ( A ) -> A + ' static ) -> Self {
180
180
self . transform_flatten ( move |a| Chunk :: new ( ) . prepend ( f ( a) ) )
@@ -203,7 +203,7 @@ impl<A> Chunk<A> {
203
203
/// // This operation is O(1) and doesn't actually transform the elements
204
204
/// let duplicated = chunk.transform_flatten(|x| Chunk::new().prepend(x).prepend(x));
205
205
/// // The transformation happens here, when we call as_vec()
206
- /// assert_eq!(duplicated.as_vec(), vec![& 2, & 2, & 1, & 1]);
206
+ /// assert_eq!(duplicated.as_vec(), vec![2, 2, 1, 1]);
207
207
/// ```
208
208
pub fn transform_flatten ( self , f : impl Fn ( A ) -> Chunk < A > + ' static ) -> Chunk < A > {
209
209
Chunk :: FlatMap ( Rc :: new ( self ) , Rc :: new ( f) )
@@ -219,7 +219,7 @@ impl<A> Chunk<A> {
219
219
/// use tailcall_chunk::Chunk;
220
220
///
221
221
/// let chunk = Chunk::new().prepend(1).prepend(2).prepend(3);
222
- /// assert_eq!(chunk.as_vec(), vec![&1, & 2, &3 ]);
222
+ /// assert_eq!(chunk.as_vec(), vec![3, 2, 1 ]);
223
223
/// ```
224
224
pub fn as_vec ( & self ) -> Vec < A >
225
225
where
@@ -350,9 +350,9 @@ mod tests {
350
350
let chunk3 = chunk1. clone ( ) . prepend ( 4 ) ;
351
351
352
352
// Verify that modifications create new structures while preserving the original
353
- assert_eq ! ( chunk1. as_vec( ) , vec![ 1 , 2 ] ) ;
354
- assert_eq ! ( chunk2. as_vec( ) , vec![ 1 , 2 , 3 ] ) ;
355
- assert_eq ! ( chunk3. as_vec( ) , vec![ 1 , 2 , 4 ] ) ;
353
+ assert_eq ! ( chunk1. as_vec( ) , vec![ 2 , 1 ] ) ;
354
+ assert_eq ! ( chunk2. as_vec( ) , vec![ 3 , 2 , 1 ] ) ;
355
+ assert_eq ! ( chunk3. as_vec( ) , vec![ 4 , 2 , 1 ] ) ;
356
356
}
357
357
358
358
#[ test]
@@ -365,7 +365,7 @@ mod tests {
365
365
366
366
// Test with floating point numbers
367
367
let float_chunk = Chunk :: new ( ) . prepend ( 3.14 ) . prepend ( 2.718 ) ;
368
- assert_eq ! ( float_chunk. as_vec( ) , vec![ 3.14 , 2.718 ] ) ;
368
+ assert_eq ! ( float_chunk. as_vec( ) , vec![ 2.718 , 3.14 ] ) ;
369
369
370
370
// Test with boolean values
371
371
let bool_chunk = Chunk :: new ( ) . prepend ( true ) . prepend ( false ) . prepend ( true ) ;
@@ -380,7 +380,7 @@ mod tests {
380
380
Rc :: new ( chunk) ,
381
381
Rc :: new ( |x| Chunk :: new ( ) . prepend ( x * 2 ) . prepend ( x) ) ,
382
382
) ;
383
- assert_eq ! ( mapped. as_vec( ) , vec![ 2 , 1 , 4 , 2 ] ) ;
383
+ assert_eq ! ( mapped. as_vec( ) , vec![ 2 , 4 , 1 , 2 ] ) ;
384
384
385
385
// Test flat_map with empty chunk
386
386
let empty: Chunk < i32 > = Chunk :: new ( ) ;
@@ -390,10 +390,8 @@ mod tests {
390
390
// Test nested flat_map
391
391
let chunk = Chunk :: new ( ) . prepend ( 1 ) . prepend ( 2 ) ;
392
392
let first_map = Chunk :: FlatMap ( Rc :: new ( chunk) , Rc :: new ( |x| Chunk :: new ( ) . prepend ( x * 2 ) ) ) ;
393
- let nested_map = Chunk :: FlatMap (
394
- Rc :: new ( first_map) ,
395
- Rc :: new ( |x| Chunk :: new ( ) . prepend ( x + 1 ) ) ,
396
- ) ;
397
- assert_eq ! ( nested_map. as_vec( ) , vec![ 3 , 5 ] ) ;
393
+ let nested_map =
394
+ Chunk :: FlatMap ( Rc :: new ( first_map) , Rc :: new ( |x| Chunk :: new ( ) . prepend ( x + 1 ) ) ) ;
395
+ assert_eq ! ( nested_map. as_vec( ) , vec![ 5 , 3 ] ) ;
398
396
}
399
397
}
0 commit comments