about summary refs log tree commit diff
path: root/tvix/nix-compat/src/store_path
diff options
context:
space:
mode:
Diffstat (limited to 'tvix/nix-compat/src/store_path')
-rw-r--r--tvix/nix-compat/src/store_path/mod.rs22
1 files changed, 12 insertions, 10 deletions
diff --git a/tvix/nix-compat/src/store_path/mod.rs b/tvix/nix-compat/src/store_path/mod.rs
index c1df442adc89..93b1d80bbfe3 100644
--- a/tvix/nix-compat/src/store_path/mod.rs
+++ b/tvix/nix-compat/src/store_path/mod.rs
@@ -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 `-`,