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]

[src]

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

[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 event loops and do not provide a token to the right one.

[src]

Get a raw pointer to the underlying wayland object

Retrieve a pointer to the object from the libwayland-server.so library. You will mostly need it to interface with C libraries needing access to wayland objects.

Use this if you need to pass an unimplemented object to the C library you are interfacing with.

[src]

Create a NewResource instance from a C pointer.

By doing so, you assert that this wayland object was newly created and can be safely implemented. As implementing it will overwrite any previously associated data or implementation, this can cause weird errors akin to memory corruption if it was not the case.

Trait Implementations

Auto Trait Implementations

impl<I> !Send for NewResource<I>

impl<I> !Sync for NewResource<I>