mirror of
https://github.com/openharmony/third_party_rust_tinyvec.git
synced 2026-07-21 01:35:22 -04:00
A bit of everything for iterators (#87)
* slight changes functions that use drain * bug in arrayvec iter * reverse iter for arrayvec * nth_back is stable since 1.37 * simpler drain for arrayvec * soveu forgot to add changed files * fmt + feature for rustc >= 1.40 * cosmetic changes * does the ci work now? * SHNAAAAAAAAATSEEEEEEEEL
This commit is contained in:
@@ -350,3 +350,59 @@ fn ArrayVec_splice() {
|
||||
av2.splice(1..=1, Some(4));
|
||||
assert_eq!(av2, array_vec![1, 4, 3]);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn iter_last_nth() {
|
||||
let mut av: ArrayVec<[i32; 10]> = Default::default();
|
||||
av.push(1);
|
||||
av.push(2);
|
||||
av.push(3);
|
||||
av.push(4);
|
||||
assert_eq!(av.len(), 4);
|
||||
let mut iter = av.into_iter();
|
||||
assert_eq!(iter.next(), Some(1));
|
||||
assert_eq!(iter.next(), Some(2));
|
||||
assert_eq!(iter.next(), Some(3));
|
||||
assert_eq!(iter.next(), Some(4));
|
||||
assert_eq!(iter.next(), None);
|
||||
assert_eq!(iter.last(), None);
|
||||
|
||||
let mut av: ArrayVec<[i32; 10]> = Default::default();
|
||||
av.push(1);
|
||||
av.push(2);
|
||||
av.push(3);
|
||||
|
||||
assert_eq!(av.into_iter().nth(0), Some(1));
|
||||
}
|
||||
|
||||
#[test]
|
||||
#[cfg(feature = "rustc_1_40")]
|
||||
fn reviter() {
|
||||
let mut av: ArrayVec<[i32; 10]> = Default::default();
|
||||
av.push(1);
|
||||
av.push(2);
|
||||
av.push(3);
|
||||
av.push(4);
|
||||
|
||||
let mut iter = av.into_iter();
|
||||
|
||||
assert_eq!(iter.next(), Some(1));
|
||||
assert_eq!(iter.next_back(), Some(4));
|
||||
assert_eq!(iter.next(), Some(2));
|
||||
assert_eq!(iter.next_back(), Some(3));
|
||||
assert_eq!(iter.next(), None);
|
||||
assert_eq!(iter.next_back(), None);
|
||||
|
||||
let mut av: ArrayVec<[i32; 10]> = Default::default();
|
||||
av.push(1);
|
||||
av.push(2);
|
||||
av.push(3);
|
||||
av.push(4);
|
||||
|
||||
let mut iter = av.into_iter();
|
||||
|
||||
assert_eq!(iter.nth_back(0), Some(4));
|
||||
assert_eq!(iter.nth_back(2), Some(1));
|
||||
assert_eq!(iter.nth_back(0), None);
|
||||
assert_eq!(iter.nth_back(99), None);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user