Skip to content

Instantly share code, notes, and snippets.

@SiegeLord
Created March 20, 2013 18:30
Show Gist options
  • Save SiegeLord/5207215 to your computer and use it in GitHub Desktop.
Save SiegeLord/5207215 to your computer and use it in GitHub Desktop.
Implementing defer in Rust
struct Deferrer
{
df : ~fn()
}
impl Drop for Deferrer
{
fn finalize(&self)
{
(self.df)();
}
}
fn defer(df : ~fn()) -> Deferrer
{
return Deferrer{df : df};
}
fn main()
{
let some_var = 1;
let _a = defer(|| {io::println(fmt!("Destroying %d", some_var))});
io::println(fmt!("Using %d", some_var));
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment