use std::marker::PhantomData; use glib::{Downgrade, Object}; #[test] fn derive_downgrade() { #[derive(Downgrade)] pub struct NewType(Object); #[derive(Downgrade)] pub struct Struct { o1: Object, o2: std::rc::Rc, } #[derive(Downgrade)] pub enum Enum { None, Pair { x: Object, y: Object }, Unit(), SingleUnnamed(Object), MultipleUnnamed(Object, Object, Object), } #[derive(Downgrade)] pub struct TypedWrapper(Object, PhantomData); #[derive(Downgrade)] pub enum TypedEnum { This(Object, PhantomData), That(Object, PhantomData), } }