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

Function main

publication/code/chapter04/stack.rs:113–159  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

111}
112
113fn main() {
114 basic();
115 peek();
116 iter();
117
118 fn basic() {
119 let mut s = Stack::new();
120 s.push(1); s.push(2); s.push(3);
121
122 println!("size: {}, {:?}", s.len(), s);
123 println!("pop {:?}, size {}",s.pop().unwrap(), s.len());
124 println!("empty: {}, {:?}", s.is_empty(), s);
125
126 s.clear();
127 println!("{:?}", s);
128 }
129
130 fn peek() {
131 let mut s = Stack::new();
132 s.push(1); s.push(2); s.push(3);
133
134 println!("{:?}", s);
135 let peek_mut = s.peek_mut();
136 if let Some(top) = peek_mut {
137 *top = 4;
138 }
139
140 println!("top {:?}", s.peek().unwrap());
141 println!("{:?}", s);
142 }
143
144 fn iter() {
145 let mut s = Stack::new();
146 s.push(1); s.push(2); s.push(3);
147
148 let sum1 = s.iter().sum::<i32>();
149 let mut addend = 0;
150 for item in s.iter_mut() {
151 *item += 1;
152 addend += 1;
153 }
154
155 let sum2 = s.iter().sum::<i32>();
156 println!("{sum1} + {addend} = {sum2}");
157 assert_eq!(9, s.into_iter().sum::<i32>());
158 }
159}

Callers

nothing calls this directly

Calls 3

peekFunction · 0.85
basicFunction · 0.70
iterFunction · 0.70

Tested by

no test coverage detected