pub struct RenderInterfaceFeature { /* private fields */ }Expand description
A feature of the platform render interface
(Compositor::try_get_render_interface_feature).
The handle keeps the feature alive, as the object upstream does: a caller
that holds it still reaches the feature of a context that has since been
replaced. It may be kept, moved and dropped anywhere; the feature behind
it is only reached inside the compositor lock, with
with from outside or with get by a caller
that already has the server compositor in hand (a job).
A feature is registered under the type it is asked for by. By the
convention of the optional features a feature asked for as a trait object
(TypeId::of::<dyn IFoo>()) is registered as an Rc<dyn IFoo>: with
and get lend the dyn IFoo, never the Rc.
Implementations§
Source§impl RenderInterfaceFeature
impl RenderInterfaceFeature
Sourcepub fn with<T: ?Sized + 'static, R>(&self, f: impl FnOnce(&T) -> R) -> Option<R>
pub fn with<T: ?Sized + 'static, R>(&self, f: impl FnOnce(&T) -> R) -> Option<R>
Runs f with the feature, registered as an Rc<T>, inside the
compositor lock, which the calling thread enters for the call.
None when the feature is not registered as an Rc<T>, and once the
compositor has released its server compositor.
Sourcepub fn get<'a, T: ?Sized + 'static>(
&'a self,
server: &'a ServerCompositor,
) -> Option<&'a T>
pub fn get<'a, T: ?Sized + 'static>( &'a self, server: &'a ServerCompositor, ) -> Option<&'a T>
The feature, registered as an Rc<T>, for a caller that is inside
the compositor lock: server is what a job receives and what
Compositor::with_server hands out. None when the feature is not
registered as an Rc<T>.
§Panics
When server is not the server compositor the feature came from.
Auto Trait Implementations§
impl !RefUnwindSafe for RenderInterfaceFeature
impl !UnwindSafe for RenderInterfaceFeature
impl Freeze for RenderInterfaceFeature
impl Send for RenderInterfaceFeature
impl Sync for RenderInterfaceFeature
impl Unpin for RenderInterfaceFeature
impl UnsafeUnpin for RenderInterfaceFeature
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> ClassDefaults for Twhere
T: ?Sized,
impl<T> ClassDefaults for Twhere
T: ?Sized,
Source§fn static_constructor()
fn static_constructor()
affects_render, metadata
overrides). Read more