about summary refs log tree commit diff
path: root/tvix/castore/src/import/error.rs
blob: 3c6689dce50ce57dfd2e28c3eb198eef7cf48413 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
use std::path::PathBuf;

use crate::Error as CastoreError;

/// Represents all error types that emitted by ingest_entries.
/// It can represent errors uploading individual Directories and finalizing
/// the upload.
/// It also contains a generic error kind that'll carry ingestion-method
/// specific errors.
#[derive(Debug, thiserror::Error)]
pub enum IngestionError<E: std::fmt::Display> {
    #[error("error from producer: {0}")]
    Producer(#[from] E),

    #[error("failed to upload directory at {0}: {1}")]
    UploadDirectoryError(PathBuf, CastoreError),

    #[error("failed to finalize directory upload: {0}")]
    FinalizeDirectoryUpload(CastoreError),
}