// SPDX-License-Identifier: GPL-3.0-only use smithay::reexports::wayland_server::{Global, Interface, Resource}; use std::convert::{AsRef, From}; pub struct GlobalDrop> + From>>(Option>); impl> + From>> From> for GlobalDrop { fn from(g: Global) -> GlobalDrop { GlobalDrop(Some(g)) } } impl> + From>> Drop for GlobalDrop { fn drop(&mut self) { if let Some(global) = self.0.take() { global.destroy(); } } }