pub fn defer<F>(f: F) -> Deferred<F>where F: FnOnce(),
Run the given function when the returned value is dropped (unless it’s cancelled).