diff --git a/gobject-subclass/src/object.rs b/gobject-subclass/src/object.rs index 6578b716..7f4c9c1a 100644 --- a/gobject-subclass/src/object.rs +++ b/gobject-subclass/src/object.rs @@ -135,6 +135,25 @@ pub struct InstanceStruct } +impl Instance for InstanceStruct +{ + fn parent(&self) -> &T::GlibType{ + &self._parent + } + + fn get_impl(&self) -> &T::ImplType { + unsafe { self._imp.as_ref() } + } + + unsafe fn set_impl(&mut self, imp:ptr::NonNull){ + self._imp = imp; + } + + unsafe fn get_class(&self) -> *const ClassStruct { + *(self as *const _ as *const *const ClassStruct) + } +} + #[repr(C)] pub struct ClassStruct { pub parent: T::GlibClassType,