pub unsafe trait ClassStruct: Sized + 'static {
    type Type: ObjectSubclass;

    // Provided method
    fn class_init(&mut self) { ... }
Expand description

Trait implemented by structs that implement a GObject C class struct.

The struct must be #[repr(C)] and have the parent type’s class struct as the first field.

See basic::ClassStruct for a basic implementation of this that can be used most of the time and should only not be used if additional fields are required in the class struct, e.g. for declaring new virtual methods.

Required Associated Types§


type Type: ObjectSubclass

Corresponding object subclass type for this class struct.

Provided Methods§


fn class_init(&mut self)

Override the vfuncs of all parent types.

This is automatically called during type initialization.

Object Safety§

This trait is not object safe.



impl<T> ClassStruct for ClassStruct<T>
where T: ObjectSubclass,


type Type = T