Struct NativeJoin
pub struct NativeJoin { /* private fields */ }Expand description
The wait for a joining manager’s primary route
(CollaborationManager::join_native), made on a thread of its own: a
window whose record is not on this device yet builds once the route is
joined, from the workspace’s committed history. Its outcome is an event
(Self::when_done); no clock decides it. The window’s thread shows the
window’s loading state meanwhile and builds the window once it is told
(Self::finish).
Implementations§
§impl NativeJoin
impl NativeJoin
pub fn start(
manager: CollaborationManager,
) -> Result<NativeJoin, NativeLaunchError>
pub fn start( manager: CollaborationManager, ) -> Result<NativeJoin, NativeLaunchError>
Wait for manager’s join off this thread. The manager keeps the wake
scope it was made in: the app that takes it is the one its worker
wakes.
§Errors
crate::NativeLaunchError::Operation where the thread cannot start.
pub fn is_done(&self) -> bool
pub fn is_done(&self) -> bool
Whether the join is over: Self::finish answers at once.
pub fn when_done(&self, told: impl FnOnce() + Send + 'static)
pub fn when_done(&self, told: impl FnOnce() + Send + 'static)
Call told once the join is over, on the join’s thread, or at once
when it already is. Replaces an earlier told.
pub fn finish(self) -> Result<CollaborationManager, NativeLaunchError>
pub fn finish(self) -> Result<CollaborationManager, NativeLaunchError>
The window’s manager, joined, or why it could not join. Waits for
the join’s own outcome, never a clock; a window’s thread calls it
once told (Self::when_done).
§Errors
Trait Implementations§
Auto Trait Implementations§
impl Freeze for NativeJoin
impl RefUnwindSafe for NativeJoin
impl Send for NativeJoin
impl !Sync for NativeJoin
impl Unpin for NativeJoin
impl UnsafeUnpin for NativeJoin
impl UnwindSafe for NativeJoin
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
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
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.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn 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.§fn 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.§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn 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.§fn 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.§impl<T> DowncastSend for T
impl<T> DowncastSend for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more