///|
/// Details captured from libdave's MLS failure callback.
pub(all) struct MlsFailure {
source : String
reason : String
} derive(Debug, Eq)
///|
/// Errors reported by the safe DAVE wrapper.
///
/// Protocol-level commit and Welcome rejection is returned as
/// `CommitResult::Failed` or `WelcomeResult::Failed`, rather than raised as an
/// error. Raised errors represent invalid wrapper use, unavailable native
/// support, or an operation that could not produce a protocol result.
pub(all) suberror DaveError {
LibraryUnavailable(reason~ : String)
InvalidArgument(operation~ : String, reason~ : String)
InvalidState(operation~ : String, reason~ : String)
MlsOperationFailed(operation~ : String, failure~ : MlsFailure)
FingerprintFailed(user_id~ : UInt64, reason~ : String)
EncryptFailed(reason~ : EncryptFailure)
DecryptFailed(reason~ : DecryptFailure)
NativeFailure(operation~ : String, reason~ : String)
} derive(Debug, Eq)