blob: 75a28aa95b9ef8d8c1067556c312c50dee1cf44d (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
pub fn guard<T> (finally: ~fn (), body: &fn () -> T) -> T {
let _guard = Guard { finally: finally };
body()
}
struct Guard {
priv finally: ~fn (),
}
impl Drop for Guard {
fn finalize (&self) {
(self.finally)();
}
}
|