struct S { v: i64 } fn sum(n: S) -> impl Fn(i64) -> i64 { let res = move |x| { x + n.v }; println!("N is {}", n.v); res } fn main() { let n = 1; let f = sum(S{v:n}); let v = 5; println!("Add {} {} = {}", v, n, f(v)) }