Skip to content

Commit 6e0fc89

Browse files
committed
Changing naming in rotate function to reference iterators rather than
vectors
1 parent b458fc2 commit 6e0fc89

File tree

1 file changed

+22
-22
lines changed

1 file changed

+22
-22
lines changed

lightning-invoice/src/utils.rs

+22-22
Original file line numberDiff line numberDiff line change
@@ -282,16 +282,16 @@ where
282282
// the hints across our real nodes we add one hint from each in turn until no node has any hints
283283
// left (if one node has more hints than any other, these will accumulate at the end of the
284284
// vector).
285-
rotate_nested_vectors(phantom_hints)
285+
rotate_nested_iterators(phantom_hints)
286286
}
287287

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> {
291291
let mut iterations = 0;
292292

293293
core::iter::from_fn(move || {
294-
let mut exhausted_vectors = 0;
294+
let mut exhausted_iterators = 0;
295295
loop {
296296
if vecs.is_empty() {
297297
return None;
@@ -302,9 +302,9 @@ fn rotate_nested_vectors<T, I: Iterator<Item = T>>(mut vecs: Vec<I>) -> impl Ite
302302
return Some(item);
303303
}
304304
// exhausted_vectors increase when the "next_idx" vector is exhausted
305-
exhausted_vectors += 1;
305+
exhausted_iterators += 1;
306306
// return None when all of the nested vectors are exhausted
307-
if exhausted_vectors > vecs.len() {
307+
if exhausted_iterators == vecs.len() {
308308
return None;
309309
}
310310
}
@@ -803,7 +803,7 @@ mod test {
803803
use lightning::routing::router::{PaymentParameters, RouteParameters};
804804
use lightning::util::test_utils;
805805
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};
807807
use std::collections::HashSet;
808808

809809
#[test]
@@ -1914,59 +1914,59 @@ mod test {
19141914
}
19151915

19161916
#[test]
1917-
fn test_zip_nested_vectors() {
1917+
fn test_rotate_nested_iterators() {
19181918
// two nested vectors
19191919
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<_>>();
19211921

19221922
let expected = vec!["a0", "a1", "b0", "b1", "c0"];
19231923
assert_eq!(expected, result);
19241924

19251925
// test single nested vector
19261926
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<_>>();
19281928

19291929
let expected = vec!["a0", "b0", "c0"];
19301930
assert_eq!(expected, result);
19311931

19321932
// test second vector with only one element
19331933
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<_>>();
19351935

19361936
let expected = vec!["a0", "a1", "b0", "c0"];
19371937
assert_eq!(expected, result);
19381938

19391939
// test three nestend vectors
19401940
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<_>>();
19421942

19431943
let expected = vec!["a0", "a1", "a2", "b1", "c1"];
19441944
assert_eq!(expected, result);
19451945

19461946
// test single nested vector with a single value
19471947
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<_>>();
19491949

19501950
let expected = vec!["a0"];
19511951
assert_eq!(expected, result);
19521952

19531953
// test single empty nested vector
19541954
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>>();
19561956
let expected:Vec<&str> = vec![];
19571957

19581958
assert_eq!(expected, result);
19591959

19601960
// test first nested vector is empty
19611961
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>>();
19631963

19641964
let expected = vec!["a1", "b1", "c1"];
19651965
assert_eq!(expected, result);
19661966

19671967
// test two empty vectors
19681968
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>>();
19701970

19711971
let expected:Vec<&str> = vec![];
19721972
assert_eq!(expected, result);
@@ -1978,21 +1978,21 @@ mod test {
19781978
vec!["a1", "b1", "c1"].into_iter(),
19791979
vec!["a2", "b2", "c2"].into_iter(),
19801980
];
1981-
let result = rotate_nested_vectors(a).collect::<Vec<_>>();
1981+
let result = rotate_nested_iterators(a).collect::<Vec<_>>();
19821982

19831983
let expected = vec!["a0", "a1", "a2", "b0", "b1", "b2", "c0", "c1", "c2"];
19841984
assert_eq!(expected, result);
19851985

19861986
// test a filled vector between two empty vectors
19871987
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<_>>();
19891989

19901990
let expected = vec!["a1", "b1", "c1"];
19911991
assert_eq!(expected, result);
19921992

19931993
// test an empty vector at the end of the vectors
19941994
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<_>>();
19961996

19971997
let expected = vec!["a0", "b0", "c0"];
19981998
assert_eq!(expected, result);
@@ -2006,15 +2006,15 @@ mod test {
20062006
vec![].into_iter(),
20072007
];
20082008

2009-
let result = rotate_nested_vectors(a).collect::<Vec<_>>();
2009+
let result = rotate_nested_iterators(a).collect::<Vec<_>>();
20102010

20112011
let expected = vec!["a1", "a3", "b1", "b3", "c1"];
20122012
assert_eq!(expected, result);
20132013

20142014
// test one element in the first nested vectore and two elements in the second nested
20152015
// vector
20162016
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<_>>();
20182018

20192019
let expected = vec!["a0", "a1", "b1"];
20202020
assert_eq!(expected, result);

0 commit comments

Comments
 (0)