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}