//@ run-pass | |
fn example_err(prog: &str, arg: &str) { | |
println!("{}: {}", prog, arg) | |
} | |
fn exit<F>(print: F, prog: &str, arg: &str) where F: FnOnce(&str, &str) { | |
print(prog, arg); | |
} | |
struct X<F> where F: FnOnce(&str, &str) { | |
err: F, | |
} | |
impl<F> X<F> where F: FnOnce(&str, &str) { | |
pub fn boom(self) { | |
exit(self.err, "prog", "arg"); | |
} | |
} | |
pub fn main(){ | |
let val = X { | |
err: example_err, | |
}; | |
val.boom(); | |
} |