backup/
error.rs

1// SPDX-FileCopyrightText: 2025 Foundation Devices, Inc. <hello@foundation.xyz>
2// SPDX-License-Identifier: GPL-3.0-or-later
3use server::xous;
4
5#[derive(Debug, thiserror::Error, rkyv::Archive, rkyv::Serialize, rkyv::Deserialize)]
6pub enum Error {
7    #[error("xous error: {:?}", xous::Error::from_usize(*.0))]
8    Xous(usize),
9
10    #[error("invalid backup file")]
11    InvalidBackupFile,
12
13    #[error(transparent)]
14    CryptoError(#[from] crypto::error::CryptoError),
15
16    #[error(transparent)]
17    AccessDenied(#[from] security::AccessDenied),
18
19    #[error(transparent)]
20    Fs(#[from] fs::Error),
21
22    #[error("io error: {0}")]
23    Io(String),
24}
25
26impl From<xous::Error> for Error {
27    fn from(e: xous::Error) -> Self { Error::Xous(e.to_usize()) }
28}
29
30impl From<std::io::Error> for Error {
31    fn from(e: std::io::Error) -> Self { Error::Io(e.to_string()) }
32}