cannot move closure
it's ok
fn main() {
let p = |x| println!("{x}");
consume(p, 10);
consume(p, 20);
}
fn consume<F>(f: F, value: u32)
where
F: Fn(u32),
{
f(value);
}
it's not allowed
fn main() {
let p = |x| {
println!("{x:?}");
};
consume(p, 10);
}
fn consume<F>(f: F, value: u32)
where
F: Fn(u32),
{
consume_more(f, value);
consume_more(f, value);
}
fn consume_more<F>(f: F, value: u32)
where
F: Fn(u32),
{
f(value);
}