Skip to main content

sendcipher_core/
error.rs

1/* Created on 2025.10.13 */
2/* Copyright (c) 2025-2026 Youcef Lemsafer */
3/* SPDX-License-Identifier: MIT */
4
5#[derive(Clone, Debug, thiserror::Error)]
6pub enum Error {
7    #[error("{0}")]
8    Any(String),
9    #[error("0")]
10    BincodeError(String),
11    #[error("0")]
12    BlobParsingError(String),
13    #[error("{0}")]
14    ChunkChecksumError(String),
15    #[error("{0}")]
16    EncryptionError(String),
17    #[error("{0}")]
18    DecryptionError(String),
19    #[error("{0}")]
20    InvalidAlgorithm(String),
21    #[error("{0}")]
22    InvalidInput(String),
23    #[error("{0}")]
24    IoError(String),
25    #[error("{0}")]
26    SerializationError(String),
27    #[error("{0}")]
28    DeserializationError(String),
29    #[error("{0}")]
30    LogicError(String)
31}
32
33impl From<String> for Error {
34    fn from(s: String) -> Self {
35        Error::Any(s)
36    }
37}
38impl From<&str> for Error {
39    fn from(s: &str) -> Self {
40        Error::Any(s.to_string())
41    }
42}
43
44impl From<std::io::Error> for Error {
45    fn from(io_error: std::io::Error) -> Self {
46        Error::IoError(io_error.to_string())
47    }
48}