refactor(tvix/castore): drop {Directory,File,Symlink}Node
Add a `SymlinkTarget` type to represent validated symlink targets. With this, no invalid states are representable, so we can make `Node` be just an enum of all three kind of types, and allow access to these fields directly. Change-Id: I20bdd480c8d5e64a827649f303c97023b7e390f2 Reviewed-on: https://cl.tvl.fyi/c/depot/+/12216 Reviewed-by: benjaminedwardwebb <benjaminedwardwebb@gmail.com> Autosubmit: flokli <flokli@flokli.de> Reviewed-by: Connor Brewster <cbrewster@hey.com> Tested-by: BuildkiteCI
This commit is contained in:
parent
49b173786c
commit
8ea7d2b60e
27 changed files with 555 additions and 461 deletions
|
|
@ -10,7 +10,7 @@ use tokio::io::{AsyncBufRead, AsyncRead, AsyncWrite, AsyncWriteExt, BufReader};
|
|||
use tokio_util::io::{InspectReader, InspectWriter};
|
||||
use tracing::{instrument, warn, Span};
|
||||
use tracing_indicatif::span_ext::IndicatifSpanExt;
|
||||
use tvix_castore::{blobservice::BlobService, directoryservice::DirectoryService, FileNode, Node};
|
||||
use tvix_castore::{blobservice::BlobService, directoryservice::DirectoryService, Node};
|
||||
use tvix_store::{nar::NarCalculationService, pathinfoservice::PathInfoService, proto::PathInfo};
|
||||
use url::Url;
|
||||
|
||||
|
|
@ -327,7 +327,11 @@ where
|
|||
|
||||
// Construct and return the FileNode describing the downloaded contents.
|
||||
Ok((
|
||||
Node::File(FileNode::new(blob_writer.close().await?, blob_size, false)),
|
||||
Node::File {
|
||||
digest: blob_writer.close().await?,
|
||||
size: blob_size,
|
||||
executable: false,
|
||||
},
|
||||
CAHash::Flat(actual_hash),
|
||||
blob_size,
|
||||
))
|
||||
|
|
@ -522,7 +526,11 @@ where
|
|||
|
||||
// Construct and return the FileNode describing the downloaded contents,
|
||||
// make it executable.
|
||||
let root_node = Node::File(FileNode::new(blob_digest, file_size, true));
|
||||
let root_node = Node::File {
|
||||
digest: blob_digest,
|
||||
size: file_size,
|
||||
executable: true,
|
||||
};
|
||||
|
||||
Ok((root_node, CAHash::Nar(actual_hash), file_size))
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue