Enum WelcomeError
pub enum WelcomeError<StorageError> {
Show 23 variants
GroupSecrets(GroupSecretsError),
PrivateInitKeyNotFound,
LibraryError(LibraryError),
CiphersuiteMismatch,
GroupInfo(GroupInfoError),
JoinerSecretNotFound,
MissingRatchetTree,
ConfirmationTagMismatch,
InvalidGroupInfoSignature,
UnsupportedMlsVersion,
UnsupportedCapability,
UnknownSender,
NotAWelcomeMessage,
MalformedWelcomeMessage,
UnableToDecrypt,
UnsupportedExtensions,
Psk(PskError),
NoMatchingEncryptionKey,
NoMatchingKeyPackage,
PublicTreeError(PublicTreeError),
PublicGroupError(CreationFromExternalError<StorageError>),
LeafNodeValidation(LeafNodeValidationError),
StorageError(StorageError),
}Expand description
Welcome error
Variants§
GroupSecrets(GroupSecretsError)
See GroupSecretsError for more details.
PrivateInitKeyNotFound
Private part of init_key not found in key store.
LibraryError(LibraryError)
See LibraryError for more details.
CiphersuiteMismatch
Ciphersuites in Welcome and key package bundle don’t match.
GroupInfo(GroupInfoError)
See GroupInfoError for more details.
JoinerSecretNotFound
No joiner secret found in the Welcome message.
MissingRatchetTree
No ratchet tree available to build initial tree after receiving a Welcome message.
ConfirmationTagMismatch
The computed confirmation tag does not match the expected one.
InvalidGroupInfoSignature
The signature on the GroupInfo is not valid.
UnsupportedMlsVersion
We don’t support the version of the group we are trying to join.
UnsupportedCapability
We don’t support all capabilities of the group.
UnknownSender
Sender not found in tree.
NotAWelcomeMessage
The provided message is not a Welcome message.
MalformedWelcomeMessage
Malformed Welcome message.
UnableToDecrypt
Could not decrypt the Welcome message.
UnsupportedExtensions
Unsupported extensions found in the KeyPackage of another member.
Psk(PskError)
See PskError for more details.
NoMatchingEncryptionKey
No matching encryption key was found in the key store.
NoMatchingKeyPackage
No matching key package was found in the key store.
PublicTreeError(PublicTreeError)
This error indicates the public tree is invalid. See PublicTreeError for more details.
PublicGroupError(CreationFromExternalError<StorageError>)
This error indicates the public tree is invalid. See
CreationFromExternalError for more details.
LeafNodeValidation(LeafNodeValidationError)
This error indicates the leaf node is invalid. See LeafNodeValidationError for more details.
StorageError(StorageError)
This error indicates that an error occurred while reading or writing from/to storage.
Trait Implementations§
§impl<StorageError> Clone for WelcomeError<StorageError>where
StorageError: Clone,
impl<StorageError> Clone for WelcomeError<StorageError>where
StorageError: Clone,
§fn clone(&self) -> WelcomeError<StorageError>
fn clone(&self) -> WelcomeError<StorageError>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl<StorageError> Debug for WelcomeError<StorageError>where
StorageError: Debug,
impl<StorageError> Debug for WelcomeError<StorageError>where
StorageError: Debug,
§impl<StorageError> Display for WelcomeError<StorageError>where
CreationFromExternalError<StorageError>: Display,
impl<StorageError> Display for WelcomeError<StorageError>where
CreationFromExternalError<StorageError>: Display,
§impl<StorageError> Error for WelcomeError<StorageError>
impl<StorageError> Error for WelcomeError<StorageError>
§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
§impl<StorageError> From<CreationFromExternalError<StorageError>> for WelcomeError<StorageError>
impl<StorageError> From<CreationFromExternalError<StorageError>> for WelcomeError<StorageError>
§fn from(
source: CreationFromExternalError<StorageError>,
) -> WelcomeError<StorageError>
fn from( source: CreationFromExternalError<StorageError>, ) -> WelcomeError<StorageError>
§impl<StorageError> From<GroupInfoError> for WelcomeError<StorageError>
impl<StorageError> From<GroupInfoError> for WelcomeError<StorageError>
§fn from(source: GroupInfoError) -> WelcomeError<StorageError>
fn from(source: GroupInfoError) -> WelcomeError<StorageError>
§impl<StorageError> From<GroupSecretsError> for WelcomeError<StorageError>
impl<StorageError> From<GroupSecretsError> for WelcomeError<StorageError>
§fn from(source: GroupSecretsError) -> WelcomeError<StorageError>
fn from(source: GroupSecretsError) -> WelcomeError<StorageError>
§impl<StorageError> From<LeafNodeValidationError> for WelcomeError<StorageError>
impl<StorageError> From<LeafNodeValidationError> for WelcomeError<StorageError>
§fn from(source: LeafNodeValidationError) -> WelcomeError<StorageError>
fn from(source: LeafNodeValidationError) -> WelcomeError<StorageError>
§impl<StorageError> From<LibraryError> for WelcomeError<StorageError>
impl<StorageError> From<LibraryError> for WelcomeError<StorageError>
§fn from(source: LibraryError) -> WelcomeError<StorageError>
fn from(source: LibraryError) -> WelcomeError<StorageError>
§impl<StorageError> From<PskError> for WelcomeError<StorageError>
impl<StorageError> From<PskError> for WelcomeError<StorageError>
§fn from(source: PskError) -> WelcomeError<StorageError>
fn from(source: PskError) -> WelcomeError<StorageError>
§impl<StorageError> From<PublicTreeError> for WelcomeError<StorageError>
impl<StorageError> From<PublicTreeError> for WelcomeError<StorageError>
§fn from(source: PublicTreeError) -> WelcomeError<StorageError>
fn from(source: PublicTreeError) -> WelcomeError<StorageError>
§impl<StorageError> From<WelcomeError<StorageError>> for ClientError<StorageError>
impl<StorageError> From<WelcomeError<StorageError>> for ClientError<StorageError>
§fn from(source: WelcomeError<StorageError>) -> ClientError<StorageError>
fn from(source: WelcomeError<StorageError>) -> ClientError<StorageError>
§impl<StorageError> PartialEq for WelcomeError<StorageError>where
StorageError: PartialEq,
impl<StorageError> PartialEq for WelcomeError<StorageError>where
StorageError: PartialEq,
impl<StorageError> StructuralPartialEq for WelcomeError<StorageError>
Auto Trait Implementations§
impl<StorageError> Freeze for WelcomeError<StorageError>where
StorageError: Freeze,
impl<StorageError> RefUnwindSafe for WelcomeError<StorageError>where
StorageError: RefUnwindSafe,
impl<StorageError> Send for WelcomeError<StorageError>where
StorageError: Send,
impl<StorageError> Sync for WelcomeError<StorageError>where
StorageError: Sync,
impl<StorageError> Unpin for WelcomeError<StorageError>where
StorageError: Unpin,
impl<StorageError> UnwindSafe for WelcomeError<StorageError>where
StorageError: UnwindSafe,
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> Classify for T
impl<T> Classify for T
type Classified = T
fn classify(self) -> T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> Declassify for T
impl<T> Declassify for T
type Declassified = T
fn declassify(self) -> T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§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§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.