pub enum GrantLoginProgress<Q> {
Starting,
EstablishingSecureChannel(Q),
WaitingForAuth {
verification_uri: Url,
continuation_sender: ContinuationMessageSender,
},
SyncingSecrets,
Done,
}e2e-encryption only.Expand description
The progress of granting the login.
Variants§
Starting
We’re just starting up, this is the default and initial state.
EstablishingSecureChannel(Q)
The secure channel is being established by exchanging the QR code and/or
CheckCode.
WaitingForAuth
The secure channel has been confirmed using the CheckCode and this
device is waiting for the authorization to complete.
Fields
continuation_sender: ContinuationMessageSenderA sender to confirm that the verification URI has been opened in the browser and the application is ready to proceed, or to cancel.
The new device has already been told to proceed when this state is emitted, so confirming only resumes this side of the process. This allows applications that suspend or navigate away while the verification URI is open to resume explicitly.
SyncingSecrets
The new device has been granted access and this device is sending the secrets to it.
Done
The process is complete.
Trait Implementations§
Source§impl<Q: Clone> Clone for GrantLoginProgress<Q>
impl<Q: Clone> Clone for GrantLoginProgress<Q>
Source§impl<Q: Debug> Debug for GrantLoginProgress<Q>
impl<Q: Debug> Debug for GrantLoginProgress<Q>
Auto Trait Implementations§
impl<Q> !RefUnwindSafe for GrantLoginProgress<Q>
impl<Q> !UnwindSafe for GrantLoginProgress<Q>
impl<Q> Freeze for GrantLoginProgress<Q>where
Q: Freeze,
impl<Q> Send for GrantLoginProgress<Q>where
Q: Send,
impl<Q> Sync for GrantLoginProgress<Q>where
Q: Sync,
impl<Q> Unpin for GrantLoginProgress<Q>where
Q: Unpin,
impl<Q> UnsafeUnpin for GrantLoginProgress<Q>where
Q: UnsafeUnpin,
Blanket Implementations§
impl<T> AsyncTraitDeps for T
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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
impl<T> CloneAny for T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> CompatExt for T
impl<T> CompatExt for T
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§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.Source§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.Source§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.Source§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.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> DropFlavorWrapper<T> for T
impl<T> DropFlavorWrapper<T> for T
impl<T> ErasedDestructor for Twhere
T: 'static,
impl<T> ErasedDestructor for Twhere
T: 'static,
impl<T> Fruit for T
Source§impl<T, UT> HandleAlloc<UT> for T
impl<T, UT> HandleAlloc<UT> for T
Source§impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
Source§impl<T> Identity for Twhere
T: ?Sized,
impl<T> Identity for Twhere
T: ?Sized,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§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