1extern crate ringbuf_basedrop;
2
3use basedrop::Collector;
4use ringbuf_basedrop::RingBuffer;
5
6fn main() {
7 let collector = Collector::new();
8
9 let rb = RingBuffer::<i32>::new(2);
10 let (mut prod, mut cons) = rb.split(&collector.handle());
11
12 prod.push(0).unwrap();
13 prod.push(1).unwrap();
14 assert_eq!(prod.push(2), Err(2));
15
16 assert_eq!(cons.pop().unwrap(), 0);
17
18 prod.push(2).unwrap();
19
20 assert_eq!(cons.pop().unwrap(), 1);
21 assert_eq!(cons.pop().unwrap(), 2);
22 assert_eq!(cons.pop(), None);
23}