pub fn defer<T, F: FnOnce(&mut T)>( thing: &mut T, deferred: F, ) -> impl DerefMut<Target = T>
Automatically calls a deferred function when the returned handle is dropped.