@@ -78,11 +78,8 @@ impl ArrayImpl<T, +Copy<T>, +Drop<T>> of ArrayTraitExt<T> {
7878 }
7979
8080 fn concat_span <+ Destruct <T >>(ref self : Array <T >, mut arr2 : Span <T >) {
81- loop {
82- match arr2 . pop_front () {
83- Option :: Some (elem ) => self . append (* elem ),
84- Option :: None => { break ; }
85- };
81+ while let Option :: Some (elem ) = arr2 . pop_front () {
82+ self . append (* elem );
8683 }
8784 }
8885
@@ -195,29 +192,25 @@ impl SpanImpl<T, +Copy<T>, +Drop<T>> of SpanTraitExt<T> {
195192
196193 fn occurrences_of <+ PartialEq <T >>(mut self : Span <T >, item : T ) -> usize {
197194 let mut count = 0_usize ;
198- loop {
199- match self . pop_front () {
200- Option :: Some (v ) => { if * v == item {
201- count += 1 ;
202- } },
203- Option :: None => { break count ; },
204- };
205- }
195+ while let Option :: Some (v ) = self . pop_front () {
196+ if * v == item {
197+ count += 1 ;
198+ }
199+ };
200+ count
206201 }
207202
208203 fn min <+ PartialEq <T >, + PartialOrd <T >>(mut self : Span <T >) -> Option <T > {
209204 let mut min = match self . pop_front () {
210205 Option :: Some (item ) => * item ,
211206 Option :: None => { return Option :: None ; },
212207 };
213- loop {
214- match self . pop_front () {
215- Option :: Some (item ) => { if * item < min {
216- min = * item
217- } },
218- Option :: None => { break Option :: Some (min ); },
219- };
220- }
208+ while let Option :: Some (item ) = self . pop_front () {
209+ if * item < min {
210+ min = * item
211+ }
212+ };
213+ Option :: Some (min )
221214 }
222215
223216 fn index_of_min <+ PartialEq <T >, + PartialOrd <T >>(mut self : Span <T >) -> Option <usize > {
@@ -227,31 +220,28 @@ impl SpanImpl<T, +Copy<T>, +Drop<T>> of SpanTraitExt<T> {
227220 Option :: Some (item ) => * item ,
228221 Option :: None => { return Option :: None ; },
229222 };
230- loop {
231- match self . pop_front () {
232- Option :: Some ( item ) => { if * item < min {
223+ while let Option :: Some ( item ) = self
224+ . pop_front () {
225+ if * item < min {
233226 index_of_min = index + 1 ;
234227 min = * item ;
235- } },
236- Option :: None => { break Option :: Some ( index_of_min ); },
228+ }
229+ index += 1 ;
237230 };
238- index += 1 ;
239- }
231+ Option :: Some (index_of_min )
240232 }
241233
242234 fn max <+ PartialEq <T >, + PartialOrd <T >>(mut self : Span <T >) -> Option <T > {
243235 let mut max = match self . pop_front () {
244236 Option :: Some (item ) => * item ,
245237 Option :: None => { return Option :: None ; },
246238 };
247- loop {
248- match self . pop_front () {
249- Option :: Some (item ) => { if * item > max {
250- max = * item
251- } },
252- Option :: None => { break Option :: Some (max ); },
253- };
254- }
239+ while let Option :: Some (item ) = self . pop_front () {
240+ if * item > max {
241+ max = * item
242+ }
243+ };
244+ Option :: Some (max )
255245 }
256246
257247 fn index_of_max <+ PartialEq <T >, + PartialOrd <T >>(mut self : Span <T >) -> Option <usize > {
@@ -261,16 +251,15 @@ impl SpanImpl<T, +Copy<T>, +Drop<T>> of SpanTraitExt<T> {
261251 Option :: Some (item ) => * item ,
262252 Option :: None => { return Option :: None ; },
263253 };
264- loop {
265- match self . pop_front () {
266- Option :: Some ( item ) => { if * item > max {
254+ while let Option :: Some ( item ) = self
255+ . pop_front () {
256+ if * item > max {
267257 index_of_max = index + 1 ;
268258 max = * item
269- } },
270- Option :: None => { break Option :: Some ( index_of_max ); },
259+ }
260+ index += 1 ;
271261 };
272- index += 1 ;
273- }
262+ Option :: Some (index_of_max )
274263 }
275264
276265 fn dedup <+ PartialEq <T >>(mut self : Span <T >) -> Array <T > {
@@ -281,28 +270,23 @@ impl SpanImpl<T, +Copy<T>, +Drop<T>> of SpanTraitExt<T> {
281270 let mut last_value = self . pop_front (). unwrap ();
282271 let mut ret = array! [* last_value ];
283272
284- loop {
285- match self . pop_front () {
286- Option :: Some ( v ) => { if (last_value != v ) {
273+ while let Option :: Some ( v ) = self
274+ . pop_front () {
275+ if (last_value != v ) {
287276 last_value = v ;
288277 ret . append (* v );
289- }; },
290- Option :: None => { break ; }
278+ }
291279 };
292- };
293280
294281 ret
295282 }
296283
297284 fn unique <+ PartialEq <T >>(mut self : Span <T >) -> Array <T > {
298285 let mut ret = array! [];
299- loop {
300- match self . pop_front () {
301- Option :: Some (v ) => { if ! ret . contains (* v ) {
302- ret . append (* v );
303- } },
304- Option :: None => { break ; }
305- };
286+ while let Option :: Some (v ) = self . pop_front () {
287+ if ! ret . contains (* v ) {
288+ ret . append (* v );
289+ }
306290 };
307291 ret
308292 }
0 commit comments