Skip to main content

snix_store/nar/
mod.rs

1use snix_castore::{B3Digest, directoryservice::OrderingError};
2
3mod import;
4mod listing;
5mod narcalculationservice;
6mod renderer;
7
8pub use import::{NarIngestionError, ingest_nar, ingest_nar_and_hash};
9pub use listing::{Error as ListingError, produce_listing};
10pub use narcalculationservice::{NarCalculationService, Renderer};
11pub use renderer::{Reader, write_nar, write_nar_simple};
12
13/// Errors that can encounter while rendering NARs.
14#[derive(Debug, thiserror::Error)]
15pub enum RenderError {
16    #[error("failure talking to a backing directory service")]
17    DirectoryService(#[source] snix_castore::directoryservice::Error),
18
19    #[error("failure talking to a backing blob service")]
20    BlobService(#[source] std::io::Error),
21
22    #[error("unable to find directory {0}, referred from {1:?}")]
23    DirectoryNotFound(B3Digest, bytes::Bytes),
24
25    #[error("Invalid Ordering")]
26    OrderingError(#[source] OrderingError),
27
28    #[error("unable to find blob {0}, referred from {1:?}")]
29    BlobNotFound(B3Digest, bytes::Bytes),
30
31    #[error(
32        "unexpected size in metadata for blob {0}, referred from {1:?} returned, expected {2}, got {3}"
33    )]
34    UnexpectedBlobMeta(B3Digest, bytes::Bytes, u32, u32),
35
36    #[error("failure using the NAR writer: {0}")]
37    NARWriterError(std::io::Error),
38}