Macro sp_core::defer

source ·
macro_rules! defer {
    ( $( $code:tt )* ) => { ... };
}
Expand description

Executes the given code when the current scope is dropped.

Multiple calls to crate::defer! will execute the passed codes in reverse order. This also applies to panic stack unwinding.

Example

use sp_core::defer;

let message = std::cell::RefCell::new("".to_string());
{
	defer!(
		message.borrow_mut().push_str("world!");
	);
	defer!(
		message.borrow_mut().push_str("Hello ");
	);
}
assert_eq!(*message.borrow(), "Hello world!");