[][src]Struct wayland_server::NewResource

pub struct NewResource<I: Interface> { /* fields omitted */ }

A newly-created resource that needs implementation

Whenever a new wayland object is created, you will receive it as a NewResource. You then have to provide an implementation for it, in order to process the incoming events it may receive. Once this done you will be able to use it as a regular Resource.

Implementations are structs implementing the appropriate variant of the Implementation trait. They can also be closures.

Methods

impl<I: Interface + 'static> NewResource<I>[src]

pub fn implement<F, Dest, UD>(
    self,
    implementation: F,
    destructor: Option<Dest>,
    user_data: UD
) -> Resource<I> where
    F: FnMut(I::Request, Resource<I>) + Send + 'static,
    Dest: FnMut(Resource<I>) + Send + 'static,
    UD: Send + Sync + 'static,
    I::Request: MessageGroup<Map = ResourceMap>, 
[src]

Implement this resource using given function, destructor, and user data.

pub fn implement_nonsend<F, Dest, UD>(
    self,
    implementation: F,
    destructor: Option<Dest>,
    user_data: UD,
    token: &DisplayToken
) -> Resource<I> where
    F: FnMut(I::Request, Resource<I>) + 'static,
    Dest: FnMut(Resource<I>) + 'static,
    UD: 'static,
    I::Request: MessageGroup<Map = ResourceMap>, 
[src]

Implement this resource using given function and implementation data.

This method allows the implementation data to not be Send, but requires for safety that you provide a token to the event loop owning the proxy. As the token is not Send, this ensures you are implementing the resource from the same thread as the event loop runs on.

** Panics **

This function will panic if you create several wayland displays and do not provide a token to the right one.

Auto Trait Implementations

impl<I> !Send for NewResource<I>

impl<I> !Sync for NewResource<I>

Blanket Implementations

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

impl<T> From for T[src]

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

type Error = Infallible

The type returned in the event of a conversion error.

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

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

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

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

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> Downcast for T where
    T: Any
[src]