#[non_exhaustive]pub struct SasV1Content {
pub key_agreement_protocols: Vec<KeyAgreementProtocol>,
pub hashes: Vec<HashAlgorithm>,
pub message_authentication_codes: Vec<MessageAuthenticationCode>,
pub short_authentication_string: Vec<ShortAuthenticationString>,
}
Expand description
The payload of an m.key.verification.start
event using the m.sas.v1
method.
To create an instance of this type, first create a SasV1ContentInit
and convert it via
SasV1Content::from
/ .into()
.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. }
syntax; cannot be matched against without a wildcard ..
; and struct update syntax will not work.key_agreement_protocols: Vec<KeyAgreementProtocol>
The key agreement protocols the sending device understands.
Must include at least Curve25519
or Curve25519HkdfSha256
.
hashes: Vec<HashAlgorithm>
The hash methods the sending device understands.
Must include at least sha256
.
message_authentication_codes: Vec<MessageAuthenticationCode>
The message authentication codes that the sending device understands.
Must include at least hkdf-hmac-sha256.v2
. Should also include hkdf-hmac-sha256
for
compatibility with older clients, though this MAC is deprecated and will be removed in a
future version of the spec.
short_authentication_string: Vec<ShortAuthenticationString>
The SAS methods the sending device (and the sending device’s user) understands.
Must include at least decimal
. Optionally can include emoji
.
Trait Implementations§
Source§impl Clone for SasV1Content
impl Clone for SasV1Content
Source§fn clone(&self) -> SasV1Content
fn clone(&self) -> SasV1Content
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for SasV1Content
impl Debug for SasV1Content
Source§impl<'de> Deserialize<'de> for SasV1Content
impl<'de> Deserialize<'de> for SasV1Content
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<SasV1Content, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<SasV1Content, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl From<SasV1ContentInit> for SasV1Content
impl From<SasV1ContentInit> for SasV1Content
Source§fn from(init: SasV1ContentInit) -> SasV1Content
fn from(init: SasV1ContentInit) -> SasV1Content
Creates a new SasV1Content
from the given init struct.
Source§impl Serialize for SasV1Content
impl Serialize for SasV1Content
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
§impl TryFrom<&SasV1Content> for AcceptedProtocols
impl TryFrom<&SasV1Content> for AcceptedProtocols
§type Error = CancelCode
type Error = CancelCode
§fn try_from(
method_content: &SasV1Content,
) -> Result<AcceptedProtocols, <AcceptedProtocols as TryFrom<&SasV1Content>>::Error>
fn try_from( method_content: &SasV1Content, ) -> Result<AcceptedProtocols, <AcceptedProtocols as TryFrom<&SasV1Content>>::Error>
Auto Trait Implementations§
impl Freeze for SasV1Content
impl RefUnwindSafe for SasV1Content
impl Send for SasV1Content
impl Sync for SasV1Content
impl Unpin for SasV1Content
impl UnwindSafe for SasV1Content
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> 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, UT> HandleAlloc<UT> for T
impl<T, UT> HandleAlloc<UT> for T
Source§fn consume_handle(handle: Handle) -> Arc<T>
fn consume_handle(handle: Handle) -> Arc<T>
Arc<>
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,
§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