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#[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}