diff options
author | Florian Klink <flokli@flokli.de> | 2024-04-20T12·01+0300 |
---|---|---|
committer | clbot <clbot@tvl.fyi> | 2024-04-20T14·14+0000 |
commit | e9db0449e700154baee1470f914c3f09089442d0 (patch) | |
tree | 7a3a8a6772c2caceb35da852f0ebb2fc638cc463 /tvix/castore/src/import/error.rs | |
parent | c4cb099823dbd20f673b870b47e4fb27af6c139c (diff) |
refactor(tvix/castore/import): make module, split off fs and error r/7981
Move error types and filesystem-specific functions to a separate file, and keep the fs:: namespace in public exports. Change-Id: I5e9e83ad78d9aea38553fafc293d3e4f8c31a8c1 Reviewed-on: https://cl.tvl.fyi/c/depot/+/11486 Tested-by: BuildkiteCI Reviewed-by: Connor Brewster <cbrewster@hey.com> Autosubmit: flokli <flokli@flokli.de>
Diffstat (limited to 'tvix/castore/src/import/error.rs')
-rw-r--r-- | tvix/castore/src/import/error.rs | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/tvix/castore/src/import/error.rs b/tvix/castore/src/import/error.rs new file mode 100644 index 000000000000..15dd0664deaa --- /dev/null +++ b/tvix/castore/src/import/error.rs @@ -0,0 +1,39 @@ +use std::{fs::FileType, path::PathBuf}; + +use crate::Error as CastoreError; + +#[derive(Debug, thiserror::Error)] +pub enum Error { + #[error("failed to upload directory at {0}: {1}")] + UploadDirectoryError(PathBuf, CastoreError), + + #[error("invalid encoding encountered for entry {0:?}")] + InvalidEncoding(PathBuf), + + #[error("unable to stat {0}: {1}")] + UnableToStat(PathBuf, std::io::Error), + + #[error("unable to open {0}: {1}")] + UnableToOpen(PathBuf, std::io::Error), + + #[error("unable to read {0}: {1}")] + UnableToRead(PathBuf, std::io::Error), + + #[error("unsupported file {0} type: {1:?}")] + UnsupportedFileType(PathBuf, FileType), +} + +impl From<CastoreError> for Error { + fn from(value: CastoreError) -> Self { + match value { + CastoreError::InvalidRequest(_) => panic!("tvix bug"), + CastoreError::StorageError(_) => panic!("error"), + } + } +} + +impl From<Error> for std::io::Error { + fn from(value: Error) -> Self { + std::io::Error::new(std::io::ErrorKind::Other, value) + } +} |