diff --git a/tvix/glue/src/builtins/derivation_error.rs b/tvix/glue/src/builtins/errors.rs similarity index 67% rename from tvix/glue/src/builtins/derivation_error.rs rename to tvix/glue/src/builtins/errors.rs index 25471f0fd..b606aa6a7 100644 --- a/tvix/glue/src/builtins/derivation_error.rs +++ b/tvix/glue/src/builtins/errors.rs @@ -1,11 +1,11 @@ -//! Contains [crate::builtins::DerivationError]. -use nix_compat::{derivation::DerivationError, nixhash}; +//! Contains errors that can occur during evaluation of builtins in this crate +use nix_compat::nixhash; use std::rc::Rc; use thiserror::Error; /// Errors related to derivation construction #[derive(Debug, Error)] -pub enum Error { +pub enum DerivationError { #[error("an output with the name '{0}' is already defined")] DuplicateOutput(String), #[error("fixed-output derivations can only have the default `out`-output")] @@ -13,15 +13,15 @@ pub enum Error { #[error("the environment variable '{0}' has already been set in this derivation")] DuplicateEnvVar(String), #[error("invalid derivation parameters: {0}")] - InvalidDerivation(DerivationError), + InvalidDerivation(#[from] nix_compat::derivation::DerivationError), #[error("invalid output hash: {0}")] - InvalidOutputHash(nixhash::Error), + InvalidOutputHash(#[from] nixhash::Error), #[error("invalid output hash mode: '{0}', only 'recursive' and 'flat` are supported")] InvalidOutputHashMode(String), } -impl From for tvix_eval::ErrorKind { - fn from(err: Error) -> Self { +impl From for tvix_eval::ErrorKind { + fn from(err: DerivationError) -> Self { tvix_eval::ErrorKind::TvixError(Rc::new(err)) } } diff --git a/tvix/glue/src/builtins/mod.rs b/tvix/glue/src/builtins/mod.rs index a62ba1928..c528bd464 100644 --- a/tvix/glue/src/builtins/mod.rs +++ b/tvix/glue/src/builtins/mod.rs @@ -5,12 +5,11 @@ use std::rc::Rc; use crate::tvix_store_io::TvixStoreIO; mod derivation; -mod derivation_error; +mod errors; mod fetchers; - mod import; -pub use derivation_error::Error as DerivationError; +pub use errors::DerivationError; /// Adds derivation-related builtins to the passed [tvix_eval::Evaluation]. ///