pub struct MainloopInner<T>where
    T: MainloopInternalType,
{ pub ptr: *mut T, pub api: *const MainloopApi, pub dropfn: fn(_: &mut MainloopInner<T>), pub supports_rtclock: bool, }
Expand description

Mainloop inner wrapper.

This contains the actual main loop object pointers, holding both the pointer to the actual opaque main loop C object, and the pointer to the associated API vtable.

An instance of this type will be held, in an Rc ref counted wrapper both in an outer Mainloop wrapper, and by all event objects. With event objects holding a ref-counted copy, this both gives event objects access to the API pointer, which they need, and also it allows us to ensure that event objects do not outlive the main loop object (which internally owns the API object), and thus ensures correct destruction order of event and main loop objects.

Fields

ptr: *mut T

An opaque main loop object

api: *const MainloopApi

The abstract main loop API vtable for the GLIB main loop object. No need to free this API as it is owned by the loop and is destroyed when the loop is freed.

dropfn: fn(_: &mut MainloopInner<T>)

All implementations must provide a drop method, to be called from an actual drop call.

supports_rtclock: bool

Whether or not the implementation supports monotonic based time events. (true if so).

Trait Implementations

Executes the destructor for this type. Read more

This is the actual implementation of the ‘inner type’ trait.

It is not possible to replace this with ‘default’ method implementations within the trait itself since the trait does not know about the existence of the struct attributes being accessed.

Return opaque main loop object pointer

Return main loop API object pointer

Returns true if the mainloop implementation supports monotonic based time events.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.