macro_while_mut/
lib.rs

1/// Allows you create a cycle with mutable conditions.
2/// # Arguments list:
3/// - cond: mutable condition (for example, `i!=array.len()`)
4/// - code: the following code
5/// # Examples
6/// ```
7///  fn main() {
8///    let mut v = vec![1i32,2,3,4,5];
9///    
10///    let mut i = 0;
11///    while_mut!{
12///        i<v.len(),
13///        {
14///            v.remove(0);
15///            println!("{} {} {}", v[0], v.len(), i);
16///            i += 1;
17///        }
18///    }
19/// }
20/// ```
21#[macro_export]
22macro_rules! while_mut{
23    {$cond: expr, $code: block} => {
24        loop {
25            if !($cond) { break; }
26            $code
27        }
28    }
29}