The syntax of the event handler is a bit special:
delete_event(_, _) => (Quit, Inhibit(false)),
First, we only need to write delete_event(_, _) => instead of connect_delete_event(move |_, _| { }). If we needed the arguments of the signal, we could have written the name of an identifier instead of using underscores (_). On the right side of the fat arrow (=>), we specify two things between parentheses and separated by a comma. First, there's Quit, which is the message that will be sent to the current widget when the event is emitted. And second is the value to return to the gtk callback. Here, we return Inhibit(false) to specify that we don't want to prevent the default event handler from running.