rust armanriazi error [E0382]: use of moved value: `counter` value moved into closure here, in previous iteration of loop

The error message you are encountering, error[E0382]: use of moved value: 'counter', typically occurs in Rust when you try to use a value after it has been moved or borrowed. In this case, it seems that the variable counter has been moved into a closure in a previous iteration of a loop. To resolve this issue, you can try using the move keyword before the closure to force it to take ownership of the variable. Here's an example:

let mut counter = 0;

while counter < 10 {
    // Create a closure that takes ownership of 'counter' using the 'move' keyword
    let closure = move || {
        println!("Counter: {}", counter);
    };

    closure();

    counter += 1;
}

By using the move keyword, the closure will take ownership of the counter variable, allowing it to be used in subsequent iterations without encountering the "use of moved value" error.