[][src]Struct wlroots::utils::Handle

pub struct Handle<D: Clone, T, W: Handleable<D, T> + Sized> { /* fields omitted */ }

A non-owned reference counted handle to a resource.

The resource could be destroyed at any time, it depends on the resource.

For example an output is destroyed when it's physical output is "disconnected" on DRM. "disconnected" depends on the output (e.g. sometimes turning it off counts as "disconnected"). However, when the backend is instead headless an output lives until it is destroyed explicitly by the library user.

Some resources are completely controlled by the user. For example although you refer to a Seat with handles it is only destroyed when you call the special destroy method on the seat handle.

Please refer to the specific resource documentation for a description of the lifetime particular to that resource.

Methods

impl<D: Clone, T, W: Handleable<D, T>> Handle<D, T, W>
[src]

Run a function with a reference to the resource if it's still alive.

Returns the result of the function, if successful.

Safety

By enforcing a rather harsh limit on the lifetime of the resource to a short lived scope of an anonymous function, this function ensures the resource does not live longer than it exists.

Panics

This function will panic if multiple mutable borrows are detected. This will happen if you call upgrade directly within this callback, or if a handle to the same resource was upgraded some where else up the stack.

Determines if the handle is alive or not.

This does not check if it's already being borrowed.

Determines if the handle is borrowed or not.

If the handle is not alive it will return false.

Trait Implementations

impl<D: Clone, T, W: Handleable<D, T>> Clone for Handle<D, T, W>
[src]

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

impl<D: Clone, T, W: Handleable<D, T>> Eq for Handle<D, T, W>
[src]

impl<D: Default + Clone, T, W: Handleable<D, T>> Default for Handle<D, T, W>
[src]

Constructs a new handle that is always invalid. Calling run on this will always fail.

This is useful for pre-filling a value before it's provided by the server, or for mocking/testing.

impl<D: Clone, T, W: Handleable<D, T>> PartialEq<Handle<D, T, W>> for Handle<D, T, W>
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl<D: Clone, T, W: Handleable<D, T>> Hash for Handle<D, T, W>
[src]

Feeds this value into the given [Hasher]. Read more

Feeds a slice of this type into the given [Hasher]. Read more

impl<D: Clone, T, W: Handleable<D, T>> Debug for Handle<D, T, W>
[src]

Formats the value using the given formatter. Read more

Auto Trait Implementations

impl<D, T, W> !Send for Handle<D, T, W>

impl<D, T, W> !Sync for Handle<D, T, W>

Blanket Implementations

impl<T> From for T
[src]

Performs the conversion.

impl<T, U> Into for T where
    U: From<T>, 
[src]

Performs the conversion.

impl<T> ToOwned for T where
    T: Clone
[src]

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

impl<T, U> TryFrom for T where
    T: From<U>, 
[src]

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

🔬 This is a nightly-only experimental API. (try_from)

Performs the conversion.

impl<T> Borrow for T where
    T: ?Sized
[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut for T where
    T: ?Sized
[src]

Mutably borrows from an owned value. Read more

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

🔬 This is a nightly-only experimental API. (try_from)

Performs the conversion.

impl<T> Any for T where
    T: 'static + ?Sized
[src]

🔬 This is a nightly-only experimental API. (get_type_id)

this method will likely be replaced by an associated static

Gets the TypeId of self. Read more