Struct wayland_client::NewProxy
source · pub struct NewProxy<I: Interface> { /* private fields */ }
Expand description
A newly-created proxy that needs implementation
Whenever a new wayland object is created, you will
receive it as a NewProxy
. 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 Proxy
.
Implementations are structs implementing the appropriate
variant of the Implementation
trait. They can also be
closures.
Implementations
sourceimpl<I: Interface + 'static> NewProxy<I>
impl<I: Interface + 'static> NewProxy<I>
sourcepub fn implement<F, UD>(self, implementation: F, user_data: UD) -> Proxy<I>where
F: FnMut(I::Event, Proxy<I>) + Send + 'static,
UD: Send + Sync + 'static,
I::Event: MessageGroup<Map = ProxyMap>,
pub fn implement<F, UD>(self, implementation: F, user_data: UD) -> Proxy<I>where
F: FnMut(I::Event, Proxy<I>) + Send + 'static,
UD: Send + Sync + 'static,
I::Event: MessageGroup<Map = ProxyMap>,
Implement this proxy using given function and implementation data.
sourcepub unsafe fn implement_nonsend<Impl, UD>(
self,
implementation: Impl,
user_data: UD,
queue: &QueueToken
) -> Proxy<I>where
Impl: FnMut(I::Event, Proxy<I>) + 'static,
UD: 'static,
I::Event: MessageGroup<Map = ProxyMap>,
pub unsafe fn implement_nonsend<Impl, UD>(
self,
implementation: Impl,
user_data: UD,
queue: &QueueToken
) -> Proxy<I>where
Impl: FnMut(I::Event, Proxy<I>) + 'static,
UD: 'static,
I::Event: MessageGroup<Map = ProxyMap>,
Implement this proxy using given function and implementation data.
This method allows the implementation to not be Send
, but requires for
safety that you provide a token to the event queue this proxy will be implemented
on. This method will then ensure that this proxy is registered on this event queue,
so that it cannot be dispatched from an other thread.
Unsafety:
This call can be racy if the proxy is not already registered on this event queue and its old queue is being dispatched from an other thread.
To ensure safety, see Proxy::make_wrapper
.
Auto Trait Implementations
impl<I> RefUnwindSafe for NewProxy<I>where
I: RefUnwindSafe,
impl<I> !Send for NewProxy<I>
impl<I> !Sync for NewProxy<I>
impl<I> Unpin for NewProxy<I>
impl<I> UnwindSafe for NewProxy<I>where
I: RefUnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
sourceimpl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
sourcefn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
. Read moresourcefn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
. Read moresourcefn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s. Read moresourcefn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s. Read more