mirror of
https://forgejo.ellis.link/continuwuation/continuwuity.git
synced 2026-05-26 20:49:55 +00:00
992f725362
Signed-off-by: Jason Volk <jason@zemos.net>
23 lines
315 B
Rust
23 lines
315 B
Rust
#[macro_export]
|
|
macro_rules! defer {
|
|
($body:block) => {
|
|
struct _Defer_<F: FnMut()> {
|
|
closure: F,
|
|
}
|
|
|
|
impl<F: FnMut()> Drop for _Defer_<F> {
|
|
fn drop(&mut self) { (self.closure)(); }
|
|
}
|
|
|
|
let _defer_ = _Defer_ {
|
|
closure: || $body,
|
|
};
|
|
};
|
|
|
|
($body:expr) => {
|
|
$crate::defer! {{
|
|
$body
|
|
}}
|
|
};
|
|
}
|