refactor(nix-compat/store_path): make digest and name private

Change-Id: I62cbe883afcf3dd0c8d4de0e3b845069eb750c97
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9855
Reviewed-by: flokli <flokli@flokli.de>
Tested-by: BuildkiteCI
This commit is contained in:
edef 2023-10-27 11:35:09 +00:00
parent 36f2b69de5
commit 7f7c1ae7be
6 changed files with 27 additions and 21 deletions

View file

@ -52,8 +52,18 @@ pub enum Error {
/// path.
#[derive(Clone, Debug, PartialEq, Eq, Hash)]
pub struct StorePath {
pub digest: [u8; DIGEST_SIZE],
pub name: String,
digest: [u8; DIGEST_SIZE],
name: String,
}
impl StorePath {
pub fn digest(&self) -> &[u8; DIGEST_SIZE] {
&self.digest
}
pub fn name(&self) -> &str {
self.name.as_ref()
}
}
impl PartialOrd for StorePath {
@ -187,14 +197,6 @@ pub(crate) fn validate_name(s: &[u8]) -> Result<String, Error> {
Ok(String::from_utf8(s.to_vec()).unwrap())
}
/// Ensures the StorePath fulfils the requirements for store paths.
/// Useful when populating the struct manually instead of parsing.
pub fn validate(s: &StorePath) -> Result<(), Error> {
validate_name(s.name.as_bytes())?;
Ok(())
}
impl fmt::Display for StorePath {
/// The string representation of a store path starts with a digest (20
/// bytes), [crate::nixbase32]-encoded, followed by a `-`,