1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
use std::{ffi::OsString, io}; #[derive(Debug, Error)] pub enum PackageError { #[error("{}: {}", _0, _1)] Crate(&'static str, String), #[error("`{}` creating: {}", _0, _1)] Creating(&'static str, io::Error), #[error("Failed to initialize package {:?} ({:?})", _0, _1)] FailedToInitialize(String, OsString), #[error("`{}` metadata: {}", _0, _1)] Removing(&'static str, io::Error), } impl From<std::io::Error> for PackageError { fn from(error: std::io::Error) -> Self { PackageError::Crate("std::io", format!("{}", error)) } } impl From<crate::errors::GitignoreError> for PackageError { fn from(error: crate::errors::GitignoreError) -> Self { PackageError::Crate("leo-package", format!("{}", error)) } } impl From<crate::errors::InputFileError> for PackageError { fn from(error: crate::errors::InputFileError) -> Self { PackageError::Crate("leo-package", format!("{}", error)) } } impl From<crate::errors::InputsDirectoryError> for PackageError { fn from(error: crate::errors::InputsDirectoryError) -> Self { PackageError::Crate("leo-package", format!("{}", error)) } } impl From<crate::errors::ImportsDirectoryError> for PackageError { fn from(error: crate::errors::ImportsDirectoryError) -> Self { PackageError::Crate("leo-package", format!("{}", error)) } } impl From<crate::errors::OutputsDirectoryError> for PackageError { fn from(error: crate::errors::OutputsDirectoryError) -> Self { PackageError::Crate("leo-package", format!("{}", error)) } } impl From<crate::errors::READMEError> for PackageError { fn from(error: crate::errors::READMEError) -> Self { PackageError::Crate("leo-package", format!("{}", error)) } } impl From<crate::errors::SourceDirectoryError> for PackageError { fn from(error: crate::errors::SourceDirectoryError) -> Self { PackageError::Crate("leo-package", format!("{}", error)) } } impl From<crate::errors::StateFileError> for PackageError { fn from(error: crate::errors::StateFileError) -> Self { PackageError::Crate("leo-package", format!("{}", error)) } } impl From<crate::errors::LibraryFileError> for PackageError { fn from(error: crate::errors::LibraryFileError) -> Self { PackageError::Crate("leo-package", format!("{}", error)) } } impl From<crate::errors::ManifestError> for PackageError { fn from(error: crate::errors::ManifestError) -> Self { PackageError::Crate("leo-package", format!("{}", error)) } } impl From<crate::errors::MainFileError> for PackageError { fn from(error: crate::errors::MainFileError) -> Self { PackageError::Crate("leo-package", format!("{}", error)) } }