@@ -27,7 +27,7 @@ use std::convert::Infallible;
2727use std:: fmt;
2828use std:: hash:: Hash ;
2929use std:: hash:: Hasher ;
30- use std:: iter:: repeat ;
30+ use std:: iter:: repeat_n ;
3131use std:: mem:: { size_of, size_of_val} ;
3232use std:: str:: FromStr ;
3333use std:: sync:: Arc ;
@@ -802,12 +802,14 @@ fn dict_from_scalar<K: ArrowDictionaryKeyType>(
802802 let values_array = value. to_array_of_size ( 1 ) ?;
803803
804804 // Create a key array with `size` elements, each of 0
805- let key_array: PrimitiveArray < K > = repeat ( if value. is_null ( ) {
806- None
807- } else {
808- Some ( K :: default_value ( ) )
809- } )
810- . take ( size)
805+ let key_array: PrimitiveArray < K > = repeat_n (
806+ if value. is_null ( ) {
807+ None
808+ } else {
809+ Some ( K :: default_value ( ) )
810+ } ,
811+ size,
812+ )
811813 . collect ( ) ;
812814
813815 // create a new DictionaryArray
@@ -2189,8 +2191,7 @@ impl ScalarValue {
21892191 scale : i8 ,
21902192 size : usize ,
21912193 ) -> Result < Decimal256Array > {
2192- Ok ( repeat ( value)
2193- . take ( size)
2194+ Ok ( repeat_n ( value, size)
21942195 . collect :: < Decimal256Array > ( )
21952196 . with_precision_and_scale ( precision, scale) ?)
21962197 }
@@ -2416,69 +2417,59 @@ impl ScalarValue {
24162417 }
24172418 ScalarValue :: Utf8 ( e) => match e {
24182419 Some ( value) => {
2419- Arc :: new ( StringArray :: from_iter_values ( repeat ( value) . take ( size) ) )
2420+ Arc :: new ( StringArray :: from_iter_values ( repeat_n ( value, size) ) )
24202421 }
24212422 None => new_null_array ( & DataType :: Utf8 , size) ,
24222423 } ,
24232424 ScalarValue :: Utf8View ( e) => match e {
24242425 Some ( value) => {
2425- Arc :: new ( StringViewArray :: from_iter_values ( repeat ( value) . take ( size) ) )
2426+ Arc :: new ( StringViewArray :: from_iter_values ( repeat_n ( value, size) ) )
24262427 }
24272428 None => new_null_array ( & DataType :: Utf8View , size) ,
24282429 } ,
24292430 ScalarValue :: LargeUtf8 ( e) => match e {
24302431 Some ( value) => {
2431- Arc :: new ( LargeStringArray :: from_iter_values ( repeat ( value) . take ( size) ) )
2432+ Arc :: new ( LargeStringArray :: from_iter_values ( repeat_n ( value, size) ) )
24322433 }
24332434 None => new_null_array ( & DataType :: LargeUtf8 , size) ,
24342435 } ,
24352436 ScalarValue :: Binary ( e) => match e {
24362437 Some ( value) => Arc :: new (
2437- repeat ( Some ( value. as_slice ( ) ) )
2438- . take ( size)
2439- . collect :: < BinaryArray > ( ) ,
2438+ repeat_n ( Some ( value. as_slice ( ) ) , size) . collect :: < BinaryArray > ( ) ,
24402439 ) ,
2441- None => {
2442- Arc :: new ( repeat ( None :: < & str > ) . take ( size) . collect :: < BinaryArray > ( ) )
2443- }
2440+ None => Arc :: new ( repeat_n ( None :: < & str > , size) . collect :: < BinaryArray > ( ) ) ,
24442441 } ,
24452442 ScalarValue :: BinaryView ( e) => match e {
24462443 Some ( value) => Arc :: new (
2447- repeat ( Some ( value. as_slice ( ) ) )
2448- . take ( size)
2449- . collect :: < BinaryViewArray > ( ) ,
2444+ repeat_n ( Some ( value. as_slice ( ) ) , size) . collect :: < BinaryViewArray > ( ) ,
24502445 ) ,
24512446 None => {
2452- Arc :: new ( repeat ( None :: < & str > ) . take ( size) . collect :: < BinaryViewArray > ( ) )
2447+ Arc :: new ( repeat_n ( None :: < & str > , size) . collect :: < BinaryViewArray > ( ) )
24532448 }
24542449 } ,
24552450 ScalarValue :: FixedSizeBinary ( s, e) => match e {
24562451 Some ( value) => Arc :: new (
24572452 FixedSizeBinaryArray :: try_from_sparse_iter_with_size (
2458- repeat ( Some ( value. as_slice ( ) ) ) . take ( size) ,
2453+ repeat_n ( Some ( value. as_slice ( ) ) , size) ,
24592454 * s,
24602455 )
24612456 . unwrap ( ) ,
24622457 ) ,
24632458 None => Arc :: new (
24642459 FixedSizeBinaryArray :: try_from_sparse_iter_with_size (
2465- repeat ( None :: < & [ u8 ] > ) . take ( size) ,
2460+ repeat_n ( None :: < & [ u8 ] > , size) ,
24662461 * s,
24672462 )
24682463 . unwrap ( ) ,
24692464 ) ,
24702465 } ,
24712466 ScalarValue :: LargeBinary ( e) => match e {
24722467 Some ( value) => Arc :: new (
2473- repeat ( Some ( value. as_slice ( ) ) )
2474- . take ( size)
2475- . collect :: < LargeBinaryArray > ( ) ,
2476- ) ,
2477- None => Arc :: new (
2478- repeat ( None :: < & str > )
2479- . take ( size)
2480- . collect :: < LargeBinaryArray > ( ) ,
2468+ repeat_n ( Some ( value. as_slice ( ) ) , size) . collect :: < LargeBinaryArray > ( ) ,
24812469 ) ,
2470+ None => {
2471+ Arc :: new ( repeat_n ( None :: < & str > , size) . collect :: < LargeBinaryArray > ( ) )
2472+ }
24822473 } ,
24832474 ScalarValue :: List ( arr) => {
24842475 Self :: list_to_array_of_size ( arr. as_ref ( ) as & dyn Array , size) ?
@@ -2606,7 +2597,7 @@ impl ScalarValue {
26062597 child_arrays. push ( ar) ;
26072598 new_fields. push ( field. clone ( ) ) ;
26082599 }
2609- let type_ids = repeat ( * v_id) . take ( size) ;
2600+ let type_ids = repeat_n ( * v_id, size) ;
26102601 let type_ids = ScalarBuffer :: < i8 > :: from_iter ( type_ids) ;
26112602 let value_offsets = match mode {
26122603 UnionMode :: Sparse => None ,
@@ -2674,7 +2665,7 @@ impl ScalarValue {
26742665 }
26752666
26762667 fn list_to_array_of_size ( arr : & dyn Array , size : usize ) -> Result < ArrayRef > {
2677- let arrays = repeat ( arr) . take ( size) . collect :: < Vec < _ > > ( ) ;
2668+ let arrays = repeat_n ( arr, size) . collect :: < Vec < _ > > ( ) ;
26782669 let ret = match !arrays. is_empty ( ) {
26792670 true => arrow:: compute:: concat ( arrays. as_slice ( ) ) ?,
26802671 false => arr. slice ( 0 , 0 ) ,
0 commit comments