1
 2
 3
 4
 5
 6
 7
 8
 9
10
pub struct Disposable(Box<dyn Drop>);

impl Disposable {
    pub fn new<T>(value: T) -> Disposable
    where
        T: Drop + 'static,
    {
        Disposable(Box::new(value))
    }
}