pub type MlsError = super::wrapper::WrappedContextualError<MlsErrorKind>;
#[derive(Debug, thiserror::Error, strum::IntoStaticStr)]
pub enum MlsErrorKind {
#[error(transparent)]
MlsWelcomeError(#[from] openmls::prelude::WelcomeError<core_crypto_keystore::CryptoKeystoreError>),
#[error(transparent)]
MlsLibraryError(#[from] openmls::error::LibraryError),
#[error(transparent)]
MlsInvalidMessageError(#[from] openmls::prelude::CreateMessageError),
#[error(transparent)]
MlsEmptyInputError(#[from] openmls::prelude::EmptyInputError),
#[error(transparent)]
MlsCredentialError(#[from] openmls::prelude::CredentialError),
#[error(transparent)]
MlsNewGroupError(#[from] openmls::prelude::NewGroupError<core_crypto_keystore::CryptoKeystoreError>),
#[error(transparent)]
MlsAddMembersError(#[from] openmls::prelude::AddMembersError<core_crypto_keystore::CryptoKeystoreError>),
#[error(transparent)]
MlsRemoveMembersError(#[from] openmls::prelude::RemoveMembersError<core_crypto_keystore::CryptoKeystoreError>),
#[error(transparent)]
MlsMessageError(#[from] openmls::prelude::ProcessMessageError),
#[error(transparent)]
MlsKeyPackageBundleNewError(
#[from] openmls::prelude::KeyPackageNewError<core_crypto_keystore::CryptoKeystoreError>,
),
#[error(transparent)]
MlsSelfUpdateError(#[from] openmls::prelude::SelfUpdateError<core_crypto_keystore::CryptoKeystoreError>),
#[error(transparent)]
MlsMlsGroupStateError(#[from] openmls::prelude::MlsGroupStateError),
#[error(transparent)]
ProposeAddMemberError(#[from] openmls::prelude::ProposeAddMemberError),
#[error(transparent)]
ProposeSelfUpdateError(#[from] openmls::prelude::ProposeSelfUpdateError<core_crypto_keystore::CryptoKeystoreError>),
#[error(transparent)]
ProposeRemoveMemberError(#[from] openmls::prelude::ProposeRemoveMemberError),
#[error(transparent)]
MlsCommitToPendingProposalsError(
#[from] openmls::prelude::CommitToPendingProposalsError<core_crypto_keystore::CryptoKeystoreError>,
),
#[error(transparent)]
MlsExportGroupInfoError(#[from] openmls::prelude::ExportGroupInfoError),
#[error(transparent)]
MlsTlsCodecError(#[from] tls_codec::Error),
#[error(transparent)]
MlsKeystoreSerializationError(#[from] serde_json::Error),
#[error(transparent)]
MlsErrorString(#[from] openmls::error::ErrorString),
#[error(transparent)]
MlsExternalCommitError(#[from] openmls::prelude::ExternalCommitError),
#[error(transparent)]
MlsCryptoError(#[from] openmls::prelude::CryptoError),
#[error(transparent)]
MlsExportSecretError(#[from] openmls::prelude::ExportSecretError),
#[error(transparent)]
MlsMergeCommitError(#[from] openmls::prelude::MergeCommitError<core_crypto_keystore::CryptoKeystoreError>),
#[error(transparent)]
MlsKeyPackageValidationError(#[from] openmls::prelude::KeyPackageVerifyError),
#[error(transparent)]
MlsMergePendingCommitError(
#[from] openmls::prelude::MergePendingCommitError<core_crypto_keystore::CryptoKeystoreError>,
),
#[error(transparent)]
MlsEncryptMessageError(#[from] openmls::framing::errors::MlsMessageError),
#[error(transparent)]
MlsDeleteKeyPackageError(
#[from] openmls::key_packages::errors::KeyPackageDeleteError<core_crypto_keystore::CryptoKeystoreError>,
),
#[error(transparent)]
MlsUpdateExtensionsError(
#[from] openmls::prelude::UpdateExtensionsError<core_crypto_keystore::CryptoKeystoreError>,
),
#[error(transparent)]
MlsLeafNodeValidationError(#[from] openmls::prelude::LeafNodeValidationError),
#[error(transparent)]
RatchetTreeError(#[from] openmls::treesync::RatchetTreeError),
#[error(transparent)]
GroupInfoError(#[from] openmls::messages::group_info::GroupInfoError),
#[error(transparent)]
ProviderError(#[from] mls_crypto_provider::MlsProviderError),
}