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.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677use std::fmt::{Display, Formatter};
#[derive(Debug, PartialEq, Eq)]pub enum StorageDirectoryError { EmptyRoot { kind: &'static str }, RelativeRoot { kind: &'static str }, ParentTraversal { kind: &'static str }, PlatformPathUnavailable { kind: &'static str }, CreateDirectoryFailed { kind: &'static str }, PathIsNotDirectory { kind: &'static str }, PathIsSymlink { kind: &'static str }, InvalidPeerId,}
impl Display for StorageDirectoryError { fn fmt(&self, formatter: &mut Formatter<'_>) -> std::fmt::Result { match self { Self::EmptyRoot { kind } => write!(formatter, "{kind} storage root is empty"), Self::RelativeRoot { kind } => write!(formatter, "{kind} storage root is not absolute"), Self::ParentTraversal { kind } => { write!(formatter, "{kind} storage root contains parent traversal") } Self::PlatformPathUnavailable { kind } => { write!(formatter, "platform path unavailable for {kind} storage") } Self::CreateDirectoryFailed { kind } => { write!(formatter, "could not create {kind} storage directory") } Self::PathIsNotDirectory { kind } => { write!(formatter, "{kind} storage path is not a directory") } Self::PathIsSymlink { kind } => { write!(formatter, "{kind} storage path must not be a symlink") } Self::InvalidPeerId => write!(formatter, "peer storage identifier is invalid"), } }}
#[derive(Debug, PartialEq, Eq)]pub enum StorageError { SchemaVersionMismatch { expected: u16, found: u16 }, SchemaVersionMissing, InvalidJson { reason: &'static str }, AtomicWriteFailed, AtomicReadFailed, ValidationFailed { reason: &'static str }, MigrationFailed { reason: &'static str },}
impl Display for StorageError { fn fmt(&self, formatter: &mut Formatter<'_>) -> std::fmt::Result { match self { Self::SchemaVersionMismatch { expected, found } => write!( formatter, "schema version mismatch: expected {expected}, found {found}" ), Self::SchemaVersionMissing => { write!(formatter, "required schema_version field missing") } Self::InvalidJson { reason } => write!(formatter, "invalid JSON: {reason}"), Self::AtomicWriteFailed => write!(formatter, "atomic write failed"), Self::AtomicReadFailed => write!(formatter, "atomic read failed"), Self::ValidationFailed { reason } => { write!(formatter, "store validation failed: {reason}") } Self::MigrationFailed { reason } => { write!(formatter, "migration failed: {reason}") } } }}
impl std::error::Error for StorageError {}
impl std::error::Error for StorageDirectoryError {}