refactor(tvix/nix-compat): rename NixHashWithMode -> CAHash
This specific struct is only used to represent content-addressed paths (in case a Derivation has a fixed-output hash, for example). Rename `Output`'s `hash_with_mode` to `ca_hash`. We now also include `CAHash::Text`, and update the `validate` function of the `Output` struct to reject text hashes there. This allows cleaning up the various output path calculation functions inside nix-compat/src/store_path/utils.rs, as they can now match on the type. `make_type` is renamed to `make_references_string`, `build_regular_ca_path` is renamed to `build_ca_path`, and `build_text_path` has a disclaimer added, because you might not actually want to use it. Change-Id: I674d065f2ed5c804012ddfed56e161ac49d23931 Reviewed-on: https://cl.tvl.fyi/c/depot/+/9814 Tested-by: BuildkiteCI Reviewed-by: raitobezarius <tvl@lahfa.xyz>
This commit is contained in:
parent
833957b374
commit
34fc4637eb
10 changed files with 222 additions and 209 deletions
|
|
@ -1,6 +1,8 @@
|
|||
use crate::{nixbase32::Nixbase32DecodeError, store_path};
|
||||
use crate::store_path;
|
||||
use thiserror::Error;
|
||||
|
||||
use super::CAHash;
|
||||
|
||||
/// Errors that can occur during the validation of Derivation structs.
|
||||
#[derive(Debug, Error, PartialEq)]
|
||||
pub enum DerivationError {
|
||||
|
|
@ -50,10 +52,6 @@ pub enum DerivationError {
|
|||
pub enum OutputError {
|
||||
#[error("Invalid output path {0}: {1}")]
|
||||
InvalidOutputPath(String, store_path::Error),
|
||||
#[error("Invalid hash encoding: {0}")]
|
||||
InvalidHashEncoding(String, Nixbase32DecodeError),
|
||||
#[error("Invalid hash algo: {0}")]
|
||||
InvalidHashAlgo(String),
|
||||
#[error("Invalid Digest size {0} for algo {1}")]
|
||||
InvalidDigestSizeForAlgo(usize, String),
|
||||
#[error("Invalid CAHash: {:?}", .0)]
|
||||
InvalidCAHash(CAHash),
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue