/// Test the `pop_each` with internal function that returns false #[test] fn pop_each_test1() { let cap = 10usize; let (mut producer, mut consumer) = RingBuffer::new(cap).split();
for i in0..cap {
producer.push((i, vec![0u8; 1000])).unwrap();
}
for _ in0..cap { let removed = consumer.pop_each(|_val| -> bool { false }, None);
assert_eq!(removed, 1);
}
assert_eq!(consumer.len(), 0);
}
/// Test the `pop_each` with capped pop #[test] fn pop_each_test2() { let cap = 10usize; let (mut producer, mut consumer) = RingBuffer::new(cap).split();
for i in0..cap {
producer.push((i, vec![0u8; 1000])).unwrap();
}
for _ in0..cap { let removed = consumer.pop_each(|_val| -> bool { true }, Some(1));
assert_eq!(removed, 1);
}
assert_eq!(consumer.len(), 0);
}
/// Test the `push_each` with internal function that adds only 1 element. #[test] fn push_each_test1() { let cap = 10usize; let (mut producer, mut consumer) = RingBuffer::new(cap).split();
for i in0..cap { letmut count = 0; // Add 1 element at a time let added = producer.push_each(|| -> Option<(usize, Vec<u8>)> { if count == 0 {
count += 1;
Some((i, vec![0u8; 1000]))
} else {
None
}
});
assert_eq!(added, 1);
}
for _ in0..cap {
consumer.pop().unwrap();
}
assert_eq!(consumer.len(), 0);
}
/// Test the `push_each` with split internal buffer #[test] fn push_each_test2() { let cap = 10usize; let cap_half = 5usize; let (mut producer, mut consumer) = RingBuffer::new(cap).split();
// Fill the entire buffer for i in0..cap {
producer.push((i, vec![0u8; 1000])).unwrap();
}
// Remove half elements for _ in0..cap_half {
consumer.pop().unwrap();
}
// Re add half elements one by one and check the return count. for i in0..cap_half { letmut count = 0; // Add 1 element at a time let added = producer.push_each(|| -> Option<(usize, Vec<u8>)> { if count == 0 {
count += 1;
Some((i, vec![0u8; 1000]))
} else {
None
}
});
assert_eq!(added, 1);
}
for _ in0..cap {
consumer.pop().unwrap();
}
assert_eq!(consumer.len(), 0);
}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.17 Sekunden
(vorverarbeitet am 2026-06-19)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.