Something went wrong. Try again.
[AWIP] Local-first peer-to-peer connectivity and sharing across Android, Linux and Windows, made with Tauri
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125use std::fmt::{Display, Formatter};
#[derive(Debug, PartialEq, Eq)]pub enum DeviceIdentityError { InvalidDeviceId, InvalidDeviceIdFormat, NilDeviceId, EmptyDisplayName, DisplayNameTooLong { length: usize, max: usize }, DisplayNameUnexpectedWhitespace, DisplayNameControlCharacter, DisplayNameFormatCharacter, DisplayNameLineSeparator,}
impl Display for DeviceIdentityError { fn fmt(&self, formatter: &mut Formatter<'_>) -> std::fmt::Result { match self { Self::InvalidDeviceId => write!(formatter, "device ID must not be empty"), Self::InvalidDeviceIdFormat => { write!(formatter, "device ID must be a canonical lowercase UUID") } Self::NilDeviceId => write!(formatter, "device ID must not be the nil UUID"), Self::EmptyDisplayName => write!(formatter, "device display name must not be empty"), Self::DisplayNameTooLong { length, max } => write!( formatter, "device display name is too long: {length} bytes, limit is {max}" ), Self::DisplayNameUnexpectedWhitespace => write!( formatter, "device display name must not have surrounding whitespace" ), Self::DisplayNameControlCharacter => { write!( formatter, "device display name contains a control character" ) } Self::DisplayNameFormatCharacter => { write!( formatter, "device display name contains a Unicode format character" ) } Self::DisplayNameLineSeparator => { write!( formatter, "device display name contains a Unicode line separator" ) } } }}
impl std::error::Error for DeviceIdentityError {}
#[derive(Debug, PartialEq, Eq)]pub enum IdentityKeyPairError { PublicKeyMismatch,}
impl Display for IdentityKeyPairError { fn fmt(&self, formatter: &mut Formatter<'_>) -> std::fmt::Result { match self { Self::PublicKeyMismatch => { write!( formatter, "identity keypair public key does not match private key" ) } } }}
impl std::error::Error for IdentityKeyPairError {}
#[derive(Debug, PartialEq, Eq)]pub enum IdentityKeyStoreError { MissingKeyPair,}
impl Display for IdentityKeyStoreError { fn fmt(&self, formatter: &mut Formatter<'_>) -> std::fmt::Result { match self { Self::MissingKeyPair => write!(formatter, "identity keypair is not available"), } }}
impl std::error::Error for IdentityKeyStoreError {}
#[derive(Debug, PartialEq, Eq)]pub enum TransportCertificateError { GenerationFailed { detail: String }, EmptyCertificate, InvalidPublicKeyLength { length: usize }, FingerprintMismatch,}
impl Display for TransportCertificateError { fn fmt(&self, formatter: &mut Formatter<'_>) -> std::fmt::Result { match self { Self::GenerationFailed { detail } => { write!( formatter, "transport certificate generation failed: {detail}" ) } Self::EmptyCertificate => write!(formatter, "transport certificate is empty"), Self::InvalidPublicKeyLength { length } => write!( formatter, "transport certificate public key has invalid length: {length}" ), Self::FingerprintMismatch => { write!( formatter, "transport certificate fingerprint does not match DER" ) } } }}
impl std::error::Error for TransportCertificateError {}