refactor(tvix/store): implement rename for node::Node

This returns a node with a new name.

Change-Id: Iebcab537f8dd63d826b9841d4d0181fcb941afdd
Reviewed-on: https://cl.tvl.fyi/c/depot/+/9211
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: flokli <flokli@flokli.de>
Tested-by: BuildkiteCI
This commit is contained in:
Florian Klink 2023-09-02 20:23:04 +03:00 committed by flokli
parent 1e9d262ad5
commit 116a137be0
2 changed files with 13 additions and 16 deletions

View file

@ -131,26 +131,12 @@ impl TvixStoreIO {
build_regular_ca_path(name, &nar_hash_with_mode, Vec::<String>::new(), false).unwrap();
// assemble a new root_node with a name that is derived from the nar hash.
let renamed_root_node = {
let name = output_path.to_string().into_bytes().into();
match root_node {
crate::proto::node::Node::Directory(n) => {
crate::proto::node::Node::Directory(crate::proto::DirectoryNode { name, ..n })
}
crate::proto::node::Node::File(n) => {
crate::proto::node::Node::File(crate::proto::FileNode { name, ..n })
}
crate::proto::node::Node::Symlink(n) => {
crate::proto::node::Node::Symlink(crate::proto::SymlinkNode { name, ..n })
}
}
};
let root_node = root_node.rename(output_path.to_string().into_bytes().into());
// assemble the [crate::proto::PathInfo] object.
let path_info = crate::proto::PathInfo {
node: Some(crate::proto::Node {
node: Some(renamed_root_node),
node: Some(root_node),
}),
// There's no reference scanning on path contents ingested like this.
references: vec![],