MCPcopy Create free account
hub / github.com/QMHTMY/RustBook / main

Function main

publication/code/chapter04/queue.rs:117–158  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

115}
116
117fn main() {
118 basic();
119 iter();
120
121 fn basic() {
122 let mut q = Queue::new(4);
123 let _r1 = q.enqueue(1); let _r2 = q.enqueue(2);
124 let _r3 = q.enqueue(3); let _r4 = q.enqueue(4);
125 if let Err(error) = q.enqueue(5) {
126 println!("Enqueue error: {error}");
127 }
128
129 if let Some(data) = q.dequeue() {
130 println!("dequeue data: {data}");
131 } else {
132 println!("empty queue");
133 }
134
135 println!("empty: {}, len: {}", q.is_empty(), q.len());
136 println!("full: {}, {:?}", q.is_full(), q);
137
138 q.clear();
139 println!("{:?}", q);
140 }
141
142 fn iter() {
143 let mut q = Queue::new(4);
144 let _r1 = q.enqueue(1); let _r2 = q.enqueue(2);
145 let _r3 = q.enqueue(3); let _r4 = q.enqueue(4);
146
147 let sum1 = q.iter().sum::<i32>();
148 let mut addend = 0;
149 for item in q.iter_mut() {
150 *item += 1;
151 addend += 1;
152 }
153 let sum2 = q.iter().sum::<i32>();
154 println!("{sum1} + {addend} = {sum2}");
155
156 assert_eq!(14, q.into_iter().sum::<i32>());
157 }
158}

Callers

nothing calls this directly

Calls 2

basicFunction · 0.70
iterFunction · 0.70

Tested by

no test coverage detected