Struct wayland_server::NewResource [−][src]
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]
impl<I: Interface + 'static> NewResource<I>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]
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>, 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]
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>, 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> !Send for NewResource<I>impl<I> !Sync for NewResource<I>
impl<I> !Sync for NewResource<I>