24 lines
336 B
Rust
24 lines
336 B
Rust
|
fn to_fn_once<F: FnOnce()>(f: F) -> F {
|
||
|
f
|
||
|
}
|
||
|
|
||
|
fn f<T: std::fmt::Display>(y: T) {
|
||
|
struct Foo<U: std::fmt::Display> {
|
||
|
x: U,
|
||
|
};
|
||
|
|
||
|
let foo = Foo { x: "x" };
|
||
|
|
||
|
let c = to_fn_once(move || {
|
||
|
println!("{} {}", foo.x, y);
|
||
|
});
|
||
|
|
||
|
c();
|
||
|
c();
|
||
|
//~^ ERROR use of moved value
|
||
|
}
|
||
|
|
||
|
fn main() {
|
||
|
f("S");
|
||
|
}
|