clepsydre-rebind 0.1.0

Safe bindings for libclepsydre
// rustdoc-stripper-ignore-next
//! Traits intended for subclassing [`Subscription`].

use glib::{prelude::*, subclass::prelude::*};

use crate::Subscription;

pub trait SubscriptionImpl: ObjectImpl + ObjectSubclass<Type: IsA<Subscription>> {}

pub trait SubscriptionImplExt: SubscriptionImpl {}

impl<T: SubscriptionImpl> SubscriptionImplExt for T {}

unsafe impl<T: SubscriptionImpl> IsSubclassable<T> for Subscription {
    fn class_init(class: &mut ::glib::Class<Self>) {
        Self::parent_class_init::<T>(class);
    }
}

#[allow(clippy::missing_safety_doc)]
pub unsafe trait SubscriptionClassExt: ClassStruct {}

unsafe impl<T: ClassStruct> SubscriptionClassExt for T where T::Type: SubscriptionImpl {}