error.rs (3110B)
1 #[cfg(doc)] 2 use super::{ 3 AllowedCredentials, CredentialMediationRequirement, CredentialSpecificExtension, 4 DiscoverableCredentialRequestOptions, Extension, NonDiscoverableCredentialRequestOptions, 5 PublicKeyCredentialRequestOptions, UserVerificationRequirement, 6 }; 7 use core::{ 8 error::Error, 9 fmt::{self, Display, Formatter}, 10 }; 11 #[cfg(doc)] 12 use std::time::{Instant, SystemTime}; 13 /// Error returned by [`DiscoverableCredentialRequestOptions::start_ceremony`]. 14 #[derive(Clone, Copy, Debug, Eq, PartialEq)] 15 pub enum DiscoverableCredentialRequestOptionsErr { 16 /// Error when [`Extension::prf`] is [`Some`] but [`PublicKeyCredentialRequestOptions::user_verification`] is 17 /// not [`UserVerificationRequirement::Required`]. 18 PrfWithoutUserVerification, 19 /// Variant when [`PublicKeyCredentialRequestOptions::timeout`] could not be added to [`Instant::now`] or 20 /// [`SystemTime::now`]. 21 InvalidTimeout, 22 } 23 impl Display for DiscoverableCredentialRequestOptionsErr { 24 #[inline] 25 fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result { 26 f.write_str(match *self { 27 Self::PrfWithoutUserVerification => { 28 "prf extension was requested without requiring user verification" 29 } 30 Self::InvalidTimeout => "the timeout could not be added to the current Instant", 31 }) 32 } 33 } 34 impl Error for DiscoverableCredentialRequestOptionsErr {} 35 /// Error returned by [`NonDiscoverableCredentialRequestOptions::start_ceremony`]. 36 #[derive(Clone, Copy, Debug, Eq, PartialEq)] 37 pub enum NonDiscoverableCredentialRequestOptionsErr { 38 /// Variant when [`NonDiscoverableCredentialRequestOptions::allow_credentials`] is 39 /// empty. 40 EmptyAllowedCredentials, 41 /// Variant when [`NonDiscoverableCredentialRequestOptions::mediation`] is 42 /// [`CredentialMediationRequirement::Conditional`]. 43 ConditionalMediationRequested, 44 /// Error when [`Extension::prf`] or [`CredentialSpecificExtension::prf`] is [`Some`] but 45 /// [`PublicKeyCredentialRequestOptions::user_verification`] is not 46 /// [`UserVerificationRequirement::Required`]. 47 PrfWithoutUserVerification, 48 /// Variant when [`PublicKeyCredentialRequestOptions::timeout`] could not be added to [`Instant::now`] or 49 /// [`SystemTime::now`]. 50 InvalidTimeout, 51 } 52 impl Display for NonDiscoverableCredentialRequestOptionsErr { 53 #[inline] 54 fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result { 55 f.write_str(match *self { 56 Self::EmptyAllowedCredentials => { 57 "non-discoverable requests require a non-empty collection of allowed credentials" 58 } 59 Self::ConditionalMediationRequested => { 60 "non-discoverable requests are not allowed to use conditional mediation" 61 } 62 Self::PrfWithoutUserVerification => { 63 "prf extension was requested without requiring user verification" 64 } 65 Self::InvalidTimeout => "the timeout could not be added to the current Instant", 66 }) 67 } 68 } 69 impl Error for NonDiscoverableCredentialRequestOptionsErr {}