@@ -282,16 +282,16 @@ where
282
282
// the hints across our real nodes we add one hint from each in turn until no node has any hints
283
283
// left (if one node has more hints than any other, these will accumulate at the end of the
284
284
// vector).
285
- rotate_nested_vectors ( phantom_hints)
285
+ rotate_nested_iterators ( phantom_hints)
286
286
}
287
287
288
- /// Draw items iteratively from multiple nested vectors . The items are retrieved by index and
289
- /// rotates through the vectors - first the zero index then the first index then second index, etc.
290
- fn rotate_nested_vectors < T , I : Iterator < Item = T > > ( mut vecs : Vec < I > ) -> impl Iterator < Item = T > {
288
+ /// Draw items iteratively from multiple nested iterators . The items are retrieved by index and
289
+ /// rotates through the nested iterators - first the zero index then the first index then second index, etc.
290
+ fn rotate_nested_iterators < T , I : Iterator < Item = T > > ( mut vecs : Vec < I > ) -> impl Iterator < Item = T > {
291
291
let mut iterations = 0 ;
292
292
293
293
core:: iter:: from_fn ( move || {
294
- let mut exhausted_vectors = 0 ;
294
+ let mut exhausted_iterators = 0 ;
295
295
loop {
296
296
if vecs. is_empty ( ) {
297
297
return None ;
@@ -302,9 +302,9 @@ fn rotate_nested_vectors<T, I: Iterator<Item = T>>(mut vecs: Vec<I>) -> impl Ite
302
302
return Some ( item) ;
303
303
}
304
304
// exhausted_vectors increase when the "next_idx" vector is exhausted
305
- exhausted_vectors += 1 ;
305
+ exhausted_iterators += 1 ;
306
306
// return None when all of the nested vectors are exhausted
307
- if exhausted_vectors > vecs. len ( ) {
307
+ if exhausted_iterators == vecs. len ( ) {
308
308
return None ;
309
309
}
310
310
}
@@ -803,7 +803,7 @@ mod test {
803
803
use lightning:: routing:: router:: { PaymentParameters , RouteParameters } ;
804
804
use lightning:: util:: test_utils;
805
805
use lightning:: util:: config:: UserConfig ;
806
- use crate :: utils:: { create_invoice_from_channelmanager_and_duration_since_epoch, rotate_nested_vectors } ;
806
+ use crate :: utils:: { create_invoice_from_channelmanager_and_duration_since_epoch, rotate_nested_iterators } ;
807
807
use std:: collections:: HashSet ;
808
808
809
809
#[ test]
@@ -1914,59 +1914,59 @@ mod test {
1914
1914
}
1915
1915
1916
1916
#[ test]
1917
- fn test_zip_nested_vectors ( ) {
1917
+ fn test_rotate_nested_iterators ( ) {
1918
1918
// two nested vectors
1919
1919
let a = vec ! [ vec![ "a0" , "b0" , "c0" ] . into_iter( ) , vec![ "a1" , "b1" ] . into_iter( ) ] ;
1920
- let result = rotate_nested_vectors ( a) . collect :: < Vec < _ > > ( ) ;
1920
+ let result = rotate_nested_iterators ( a) . collect :: < Vec < _ > > ( ) ;
1921
1921
1922
1922
let expected = vec ! [ "a0" , "a1" , "b0" , "b1" , "c0" ] ;
1923
1923
assert_eq ! ( expected, result) ;
1924
1924
1925
1925
// test single nested vector
1926
1926
let a = vec ! [ vec![ "a0" , "b0" , "c0" ] . into_iter( ) ] ;
1927
- let result = rotate_nested_vectors ( a) . collect :: < Vec < _ > > ( ) ;
1927
+ let result = rotate_nested_iterators ( a) . collect :: < Vec < _ > > ( ) ;
1928
1928
1929
1929
let expected = vec ! [ "a0" , "b0" , "c0" ] ;
1930
1930
assert_eq ! ( expected, result) ;
1931
1931
1932
1932
// test second vector with only one element
1933
1933
let a = vec ! [ vec![ "a0" , "b0" , "c0" ] . into_iter( ) , vec![ "a1" ] . into_iter( ) ] ;
1934
- let result = rotate_nested_vectors ( a) . collect :: < Vec < _ > > ( ) ;
1934
+ let result = rotate_nested_iterators ( a) . collect :: < Vec < _ > > ( ) ;
1935
1935
1936
1936
let expected = vec ! [ "a0" , "a1" , "b0" , "c0" ] ;
1937
1937
assert_eq ! ( expected, result) ;
1938
1938
1939
1939
// test three nestend vectors
1940
1940
let a = vec ! [ vec![ "a0" ] . into_iter( ) , vec![ "a1" , "b1" , "c1" ] . into_iter( ) , vec![ "a2" ] . into_iter( ) ] ;
1941
- let result = rotate_nested_vectors ( a) . collect :: < Vec < _ > > ( ) ;
1941
+ let result = rotate_nested_iterators ( a) . collect :: < Vec < _ > > ( ) ;
1942
1942
1943
1943
let expected = vec ! [ "a0" , "a1" , "a2" , "b1" , "c1" ] ;
1944
1944
assert_eq ! ( expected, result) ;
1945
1945
1946
1946
// test single nested vector with a single value
1947
1947
let a = vec ! [ vec![ "a0" ] . into_iter( ) ] ;
1948
- let result = rotate_nested_vectors ( a) . collect :: < Vec < _ > > ( ) ;
1948
+ let result = rotate_nested_iterators ( a) . collect :: < Vec < _ > > ( ) ;
1949
1949
1950
1950
let expected = vec ! [ "a0" ] ;
1951
1951
assert_eq ! ( expected, result) ;
1952
1952
1953
1953
// test single empty nested vector
1954
1954
let a: Vec < std:: vec:: IntoIter < & str > > = vec ! [ vec![ ] . into_iter( ) ] ;
1955
- let result = rotate_nested_vectors ( a) . collect :: < Vec < & str > > ( ) ;
1955
+ let result = rotate_nested_iterators ( a) . collect :: < Vec < & str > > ( ) ;
1956
1956
let expected: Vec < & str > = vec ! [ ] ;
1957
1957
1958
1958
assert_eq ! ( expected, result) ;
1959
1959
1960
1960
// test first nested vector is empty
1961
1961
let a: Vec < std:: vec:: IntoIter < & str > > = vec ! [ vec![ ] . into_iter( ) , vec![ "a1" , "b1" , "c1" ] . into_iter( ) ] ;
1962
- let result = rotate_nested_vectors ( a) . collect :: < Vec < & str > > ( ) ;
1962
+ let result = rotate_nested_iterators ( a) . collect :: < Vec < & str > > ( ) ;
1963
1963
1964
1964
let expected = vec ! [ "a1" , "b1" , "c1" ] ;
1965
1965
assert_eq ! ( expected, result) ;
1966
1966
1967
1967
// test two empty vectors
1968
1968
let a: Vec < std:: vec:: IntoIter < & str > > = vec ! [ vec![ ] . into_iter( ) , vec![ ] . into_iter( ) ] ;
1969
- let result = rotate_nested_vectors ( a) . collect :: < Vec < & str > > ( ) ;
1969
+ let result = rotate_nested_iterators ( a) . collect :: < Vec < & str > > ( ) ;
1970
1970
1971
1971
let expected: Vec < & str > = vec ! [ ] ;
1972
1972
assert_eq ! ( expected, result) ;
@@ -1978,21 +1978,21 @@ mod test {
1978
1978
vec![ "a1" , "b1" , "c1" ] . into_iter( ) ,
1979
1979
vec![ "a2" , "b2" , "c2" ] . into_iter( ) ,
1980
1980
] ;
1981
- let result = rotate_nested_vectors ( a) . collect :: < Vec < _ > > ( ) ;
1981
+ let result = rotate_nested_iterators ( a) . collect :: < Vec < _ > > ( ) ;
1982
1982
1983
1983
let expected = vec ! [ "a0" , "a1" , "a2" , "b0" , "b1" , "b2" , "c0" , "c1" , "c2" ] ;
1984
1984
assert_eq ! ( expected, result) ;
1985
1985
1986
1986
// test a filled vector between two empty vectors
1987
1987
let a = vec ! [ vec![ ] . into_iter( ) , vec![ "a1" , "b1" , "c1" ] . into_iter( ) , vec![ ] . into_iter( ) ] ;
1988
- let result = rotate_nested_vectors ( a) . collect :: < Vec < _ > > ( ) ;
1988
+ let result = rotate_nested_iterators ( a) . collect :: < Vec < _ > > ( ) ;
1989
1989
1990
1990
let expected = vec ! [ "a1" , "b1" , "c1" ] ;
1991
1991
assert_eq ! ( expected, result) ;
1992
1992
1993
1993
// test an empty vector at the end of the vectors
1994
1994
let a = vec ! [ vec![ "a0" , "b0" , "c0" ] . into_iter( ) , vec![ ] . into_iter( ) ] ;
1995
- let result = rotate_nested_vectors ( a) . collect :: < Vec < _ > > ( ) ;
1995
+ let result = rotate_nested_iterators ( a) . collect :: < Vec < _ > > ( ) ;
1996
1996
1997
1997
let expected = vec ! [ "a0" , "b0" , "c0" ] ;
1998
1998
assert_eq ! ( expected, result) ;
@@ -2006,15 +2006,15 @@ mod test {
2006
2006
vec![ ] . into_iter( ) ,
2007
2007
] ;
2008
2008
2009
- let result = rotate_nested_vectors ( a) . collect :: < Vec < _ > > ( ) ;
2009
+ let result = rotate_nested_iterators ( a) . collect :: < Vec < _ > > ( ) ;
2010
2010
2011
2011
let expected = vec ! [ "a1" , "a3" , "b1" , "b3" , "c1" ] ;
2012
2012
assert_eq ! ( expected, result) ;
2013
2013
2014
2014
// test one element in the first nested vectore and two elements in the second nested
2015
2015
// vector
2016
2016
let a = vec ! [ vec![ "a0" ] . into_iter( ) , vec![ "a1" , "b1" ] . into_iter( ) ] ;
2017
- let result = rotate_nested_vectors ( a) . collect :: < Vec < _ > > ( ) ;
2017
+ let result = rotate_nested_iterators ( a) . collect :: < Vec < _ > > ( ) ;
2018
2018
2019
2019
let expected = vec ! [ "a0" , "a1" , "b1" ] ;
2020
2020
assert_eq ! ( expected, result) ;
0 commit comments