Struct wayland_client::GlobalManager
source · [−]pub struct GlobalManager { /* private fields */ }
Expand description
An utility to manage global objects
This utility provides an implemenation for the registry that track the list of globals for you, as well as utilities to bind them.
Implementations
sourceimpl GlobalManager
impl GlobalManager
sourcepub fn new(display: &Attached<WlDisplay>) -> GlobalManager
pub fn new(display: &Attached<WlDisplay>) -> GlobalManager
Create a global manager handling a registry
You need to provide an attached handle of the Waland display, and the global manager will be managed by the associated event queue.
sourcepub fn new_with_cb<F>(
display: &Attached<WlDisplay>,
callback: F
) -> GlobalManager where
F: FnMut(GlobalEvent, Attached<WlRegistry>, DispatchData<'_>) + 'static,
pub fn new_with_cb<F>(
display: &Attached<WlDisplay>,
callback: F
) -> GlobalManager where
F: FnMut(GlobalEvent, Attached<WlRegistry>, DispatchData<'_>) + 'static,
Create a global manager handling a registry with a callback
This global manager will track globals as a simple one, but will also forward the registry events to your callback.
This can be used if you want to handle specially certain globals, but want to use the default mechanism for the rest.
You need to provide an attached handle of the Waland display, and the global manager will be managed by the associated event queue.
sourcepub fn instantiate_exact<I>(&self, version: u32) -> Result<Main<I>, GlobalError> where
I: Interface + AsRef<Proxy<I>> + From<Proxy<I>>,
pub fn instantiate_exact<I>(&self, version: u32) -> Result<Main<I>, GlobalError> where
I: Interface + AsRef<Proxy<I>> + From<Proxy<I>>,
Instantiate a global with a specific version
Meaning of requests and events can change depending on the object version you use,
as such unless you specifically want to support several versions of a protocol, it is
recommended to use this method with an hardcoded value for the version (the one you’ll
use a as reference for your implementation). Notably you should not use I::VERSION
as a version, as this value can change when the protocol files are updated.
This method is only appropriate for globals that are expected to
not exist with multiplicity (such as wl_compositor
or wl_shm
),
as it will always bind the first one that was advertized.
sourcepub fn instantiate_range<I>(
&self,
min_version: u32,
max_version: u32
) -> Result<Main<I>, GlobalError> where
I: Interface + AsRef<Proxy<I>> + From<Proxy<I>>,
pub fn instantiate_range<I>(
&self,
min_version: u32,
max_version: u32
) -> Result<Main<I>, GlobalError> where
I: Interface + AsRef<Proxy<I>> + From<Proxy<I>>,
Instantiate a global from a version range
If you want to support several versions of a particular global, this method allows you to
specify a range of versions that you accept. It’ll bind the highest possible version that
is between min_version
and max_version
inclusive, and return an error if the highest
version supported by the compositor is lower than min_version
. As for
instantiate_exact
, you should not use I::VERSION
here: the versions your code support
do not change when the protocol files are updated.
When trying to support several versions of a protocol, you can check which version has
actually been used on any object using the Proxy::version()
method.
As instantiate_exact
, it should only be used for singleton globals, for the same reasons.
Trait Implementations
sourceimpl Clone for GlobalManager
impl Clone for GlobalManager
sourcefn clone(&self) -> GlobalManager
fn clone(&self) -> GlobalManager
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
Auto Trait Implementations
impl !RefUnwindSafe for GlobalManager
impl !Send for GlobalManager
impl !Sync for GlobalManager
impl Unpin for GlobalManager
impl !UnwindSafe for GlobalManager
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Downcast for T where
T: Any,
impl<T> Downcast for T where
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>
Convert 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 more
sourcefn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Convert Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
. Read more
sourcefn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert &Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s. Read more
sourcefn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert &mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s. Read more