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

    // Provided methods
    fn imp(&self) -> &Self::Type { ... }
    fn class(&self) -> &<Self::Type as ObjectSubclass>::Class { ... }
    fn instance_init(&mut self) { ... }
}
Expand description

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

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

See basic::InstanceStruct 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 instance struct.

Required Associated Types§

source

type Type: ObjectSubclass

Corresponding object subclass type for this instance struct.

Provided Methods§

source

fn imp(&self) -> &Self::Type

Returns the implementation for from this instance struct, that is the implementor of ObjectImpl or subtraits.

source

fn class(&self) -> &<Self::Type as ObjectSubclass>::Class

Returns the class struct for this specific instance.

source

fn instance_init(&mut self)

Instance specific initialization.

This is automatically called during instance initialization and must call instance_init() of the parent class.

Implementors§