diff options
author | Florian Klink <flokli@flokli.de> | 2023-03-15T23·01+0100 |
---|---|---|
committer | flokli <flokli@flokli.de> | 2023-03-16T13·47+0000 |
commit | ee23220564987771c8e7909ded6fb9853f1d1b0d (patch) | |
tree | b1c99097c8912642c9f3582adebff49f9caa3093 /tvix/store/src/nar/renderer.rs | |
parent | 9c08cbc9732710a0003cb7bbe0ff7a9950fc22b6 (diff) |
refactor(tvix/store/directorysvc): use [u8; 32] instead of Vec<u8> r/6014
Also, simplify the trait interface, only allowing lookups of Directory objects by their digest. Change-Id: I6eec28a8cb0557bed9b69df8b8ff99a5e0f8fe35 Reviewed-on: https://cl.tvl.fyi/c/depot/+/8313 Tested-by: BuildkiteCI Autosubmit: flokli <flokli@flokli.de> Reviewed-by: tazjin <tazjin@tvl.su>
Diffstat (limited to 'tvix/store/src/nar/renderer.rs')
-rw-r--r-- | tvix/store/src/nar/renderer.rs | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/tvix/store/src/nar/renderer.rs b/tvix/store/src/nar/renderer.rs index 94a392d36171..f0708ab739a5 100644 --- a/tvix/store/src/nar/renderer.rs +++ b/tvix/store/src/nar/renderer.rs @@ -103,20 +103,23 @@ impl<BS: BlobService, CS: ChunkService + Clone, DS: DirectoryService> NARRendere } proto::node::Node::Directory(proto_directory_node) => { // get the digest we're referring to - let digest = proto_directory_node.digest; + let digest: [u8; 32] = proto_directory_node.digest.try_into().map_err(|_e| { + RenderError::StoreError(crate::Error::StorageError( + "invalid digest len in directory node".to_string(), + )) + })?; + // look it up with the directory service let resp = self .directory_service - .get(&proto::get_directory_request::ByWhat::Digest( - digest.to_vec(), - )) + .get(&digest) .map_err(RenderError::StoreError)?; match resp { // if it's None, that's an error! None => { return Err(RenderError::DirectoryNotFound( - digest, + digest.to_vec(), proto_directory_node.name, )) } |