pub struct VerificationRequest { /* private fields */ }
Available on crate feature e2e-encryption only.
Expand description

An object controlling the interactive verification flow.

Implementations§

source§

impl VerificationRequest

source

pub fn is_done(&self) -> bool

Has this verification finished.

source

pub fn is_cancelled(&self) -> bool

Has the verification been cancelled.

source

pub fn flow_id(&self) -> &str

Get the transaction id of this verification request

source

pub fn cancel_info(&self) -> Option<CancelInfo>

Get info about the cancellation if the verification request has been cancelled.

source

pub fn own_user_id(&self) -> &UserId

Get our own user id.

source

pub fn is_passive(&self) -> bool

Has the verification request been answered by another device.

source

pub fn is_ready(&self) -> bool

Is the verification request ready to start a verification flow.

source

pub fn we_started(&self) -> bool

Did we initiate the verification flow.

source

pub fn other_user_id(&self) -> &UserId

Get the user id of the other user participating in this verification flow.

source

pub fn is_self_verification(&self) -> bool

Is this a verification that is verifying one of our own devices.

source

pub fn their_supported_methods(&self) -> Option<Vec<VerificationMethod>>

Get the supported verification methods of the other side.

Will be present only if the other side requested the verification or if we’re in the ready state.

source

pub async fn accept(&self) -> Result<()>

Accept the verification request.

This method will accept the request and signal by default that it supports the m.sas.v1, the m.qr_code.show.v1, and m.reciprocate.v1 method. If the qrcode feature is disabled it will only signal that it supports the m.sas.v1 method.

If QR code scanning should be supported or QR code showing shouldn’t be supported the accept_with_methods() method should be used instead.

source

pub async fn accept_with_methods( &self, methods: Vec<VerificationMethod>, ) -> Result<()>

Accept the verification request signaling that our client supports the given verification methods.

§Arguments
  • methods - The methods that we should advertise as supported by us.
source

pub async fn generate_qr_code(&self) -> Result<Option<QrVerification>>

Available on crate feature qrcode only.

Generate a QR code

source

pub async fn scan_qr_code( &self, data: QrVerificationData, ) -> Result<Option<QrVerification>>

Available on crate feature qrcode only.

Start a QR code verification by providing a scanned QR code for this verification flow.

Returns an Error if the QR code isn’t valid or sending a reciprocate event to the other side fails, None if the verification request isn’t in the ready state or we don’t support QR code verification, otherwise a newly created QrVerification object which will be used for the remainder of the verification flow.

source

pub async fn start_sas(&self) -> Result<Option<SasVerification>>

Transition from this verification request into a SAS verification flow.

source

pub async fn cancel(&self) -> Result<()>

Cancel the verification request

source

pub fn changes(&self) -> impl Stream<Item = VerificationRequestState>

Listen for changes in the verification request.

The changes are presented as a stream of VerificationRequestState values.

source

pub fn state(&self) -> VerificationRequestState

Get the current state the verification request is in.

To listen to changes to the VerificationRequestState use the VerificationRequest::changes method.

source

pub fn room_id(&self) -> Option<&RoomId>

Get the room ID, if the verification is happening inside a room.

Trait Implementations§

source§

impl Clone for VerificationRequest

source§

fn clone(&self) -> VerificationRequest

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for VerificationRequest

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
§

impl<T> CompatExt for T

§

fn compat(self) -> Compat<T>

Applies the [Compat] adapter by value. Read more
§

fn compat_ref(&self) -> Compat<&T>

Applies the [Compat] adapter by shared reference. Read more
§

fn compat_mut(&mut self) -> Compat<&mut T>

Applies the [Compat] adapter by mutable reference. Read more
source§

impl<T> DynClone for T
where T: Clone,

source§

fn __clone_box(&self, _: Private) -> *mut ()

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> FromRef<T> for T
where T: Clone,

source§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
source§

impl<T> FutureExt for T

source§

fn with_context(self, otel_cx: Context) -> WithContext<Self>

Attaches the provided Context to this type, returning a WithContext wrapper. Read more
source§

fn with_current_context(self) -> WithContext<Self>

Attaches the current Context to this type, returning a WithContext wrapper. Read more
source§

impl<T, UT> HandleAlloc<UT> for T
where T: Send + Sync,

source§

fn new_handle(value: Arc<T>) -> Handle

Create a new handle for an Arc value Read more
source§

fn clone_handle(handle: Handle) -> Handle

Clone a handle Read more
source§

fn consume_handle(handle: Handle) -> Arc<T>

Consume a handle, getting back the initial Arc<>
source§

fn get_arc(handle: Handle) -> Arc<Self>

Get a clone of the Arc<> using a “borrowed” handle. Read more
source§

impl<T, W> HasTypeWitness<W> for T
where W: MakeTypeWitness<Arg = T>, T: ?Sized,

source§

const WITNESS: W = W::MAKE

A constant of the type witness
source§

impl<T> Identity for T
where T: ?Sized,

§

type Type = T

The same type as Self, used to emulate type equality bounds (T == U) with associated type equality constraints (T: Identity<Type = U>).
source§

const TYPE_EQ: TypeEq<T, <T as Identity>::Type> = TypeEq::NEW

Proof that Self is the same type as Self::Type, provides methods for casting between Self and Self::Type.
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

source§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
source§

impl<T> Any for T
where T: Any,

source§

impl<T> AsyncTraitDeps for T

source§

impl<T> CloneAny for T
where T: Any + Clone,

source§

impl<T> CloneAnySend for T
where T: Any + Send + Clone,

source§

impl<T> CloneAnySendSync for T
where T: Any + Send + Sync + Clone,

source§

impl<T> CloneAnySync for T
where T: Any + Sync + Clone,

source§

impl<T> SendOutsideWasm for T
where T: Send,

source§

impl<T> SyncOutsideWasm for T
where T: Sync,