Use proper errors, instead of anyhow. Change-Id: I6db14c72a6319b389b0136aac7b84f50a30fb366 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7847 Autosubmit: flokli <flokli@flokli.de> Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su>
44 lines
1.5 KiB
Rust
44 lines
1.5 KiB
Rust
use thiserror::Error;
|
|
use tvix_store::store_path::ParseStorePathError;
|
|
|
|
/// Errors that can occur during the validation of Derivation structs.
|
|
#[derive(Debug, Error)]
|
|
pub enum ValidateDerivationError {
|
|
// outputs
|
|
#[error("No outputs defined.")]
|
|
NoOutputs(),
|
|
#[error("Invalid output name: {0}.")]
|
|
InvalidOutputName(String),
|
|
#[error("Encountered fixed-output derivation, but more than 1 output in total.")]
|
|
MoreThanOneOutputButFixed(),
|
|
#[error("Invalid output name for fixed-output derivation: {0}.")]
|
|
InvalidOutputNameForFixed(String),
|
|
#[error("Unable to parse path of output {0}: {1}.")]
|
|
InvalidOutputPath(String, ParseStorePathError),
|
|
|
|
// input derivation
|
|
#[error("Unable to parse input derivation path {0}: {1}.")]
|
|
InvalidInputDerivationPath(String, ParseStorePathError),
|
|
#[error("Input Derivation {0} doesn't end with .drv.")]
|
|
InvalidInputDerivationPrefix(String),
|
|
#[error("Input Derivation {0} output names are empty.")]
|
|
EmptyInputDerivationOutputNames(String),
|
|
#[error("Input Derivation {0} output name {1} is invalid.")]
|
|
InvalidInputDerivationOutputName(String, String),
|
|
|
|
// input sources
|
|
#[error("Unable to parse input sources path {0}: {1}.")]
|
|
InvalidInputSourcesPath(String, ParseStorePathError),
|
|
|
|
// platform
|
|
#[error("Invalid platform field: {0}")]
|
|
InvalidPlatform(String),
|
|
|
|
// builder
|
|
#[error("Invalid builder field: {0}")]
|
|
InvalidBuilder(String),
|
|
|
|
// environment
|
|
#[error("Invalid environment key {0}")]
|
|
InvalidEnvironmentKey(String),
|
|
}
|