refactor(tvix/castore): add PathComponent type for checked components
This encodes a verified component on the type level. Internally, it contains a bytes::Bytes. The castore Path/PathBuf component() and file_name() methods now return this type, the old ones returning bytes were renamed to component_bytes() and component_file_name() respectively. We can drop the directory_reject_invalid_name test - it's not possible anymore to pass an invalid name to Directories::add. Invalid names in the Directory proto are still being tested to be rejected in the validate_invalid_names tests. Change-Id: Ide4d16415dfd50b7e2d7e0c36d42a3bbeeb9b6c5 Reviewed-on: https://cl.tvl.fyi/c/depot/+/12217 Autosubmit: flokli <flokli@flokli.de> Reviewed-by: Connor Brewster <cbrewster@hey.com> Tested-by: BuildkiteCI
This commit is contained in:
parent
8ea7d2b60e
commit
5ec93b57e6
25 changed files with 282 additions and 165 deletions
|
|
@ -34,7 +34,7 @@ lazy_static! {
|
|||
pub static ref DIRECTORY_WITH_KEEP: Directory = {
|
||||
let mut dir = Directory::new();
|
||||
dir.add(
|
||||
".keep".into(),
|
||||
".keep".try_into().unwrap(),
|
||||
Node::File{
|
||||
digest: EMPTY_BLOB_DIGEST.clone(),
|
||||
size: 0,
|
||||
|
|
@ -46,20 +46,20 @@ lazy_static! {
|
|||
pub static ref DIRECTORY_COMPLICATED: Directory = {
|
||||
let mut dir = Directory::new();
|
||||
dir.add(
|
||||
"keep".into(),
|
||||
"keep".try_into().unwrap(),
|
||||
Node::Directory{
|
||||
digest: DIRECTORY_WITH_KEEP.digest(),
|
||||
size: DIRECTORY_WITH_KEEP.size()
|
||||
}).unwrap();
|
||||
dir.add(
|
||||
".keep".into(),
|
||||
".keep".try_into().unwrap(),
|
||||
Node::File{
|
||||
digest: EMPTY_BLOB_DIGEST.clone(),
|
||||
size: 0,
|
||||
executable: false
|
||||
}).unwrap();
|
||||
dir.add(
|
||||
"aa".into(),
|
||||
"aa".try_into().unwrap(),
|
||||
Node::Symlink{
|
||||
target: "/nix/store/somewhereelse".try_into().unwrap()
|
||||
}).unwrap();
|
||||
|
|
@ -70,7 +70,7 @@ lazy_static! {
|
|||
pub static ref DIRECTORY_B: Directory = {
|
||||
let mut dir = Directory::new();
|
||||
dir.add(
|
||||
"a".into(),
|
||||
"a".try_into().unwrap(),
|
||||
Node::Directory{
|
||||
digest: DIRECTORY_A.digest(),
|
||||
size: DIRECTORY_A.size(),
|
||||
|
|
@ -81,13 +81,13 @@ lazy_static! {
|
|||
pub static ref DIRECTORY_C: Directory = {
|
||||
let mut dir = Directory::new();
|
||||
dir.add(
|
||||
"a".into(),
|
||||
"a".try_into().unwrap(),
|
||||
Node::Directory{
|
||||
digest: DIRECTORY_A.digest(),
|
||||
size: DIRECTORY_A.size(),
|
||||
}).unwrap();
|
||||
dir.add(
|
||||
"a'".into(),
|
||||
"a'".try_into().unwrap(),
|
||||
Node::Directory{
|
||||
digest: DIRECTORY_A.digest(),
|
||||
size: DIRECTORY_A.size(),
|
||||
|
|
@ -98,13 +98,13 @@ lazy_static! {
|
|||
pub static ref DIRECTORY_D: Directory = {
|
||||
let mut dir = Directory::new();
|
||||
dir.add(
|
||||
"a".into(),
|
||||
"a".try_into().unwrap(),
|
||||
Node::Directory{
|
||||
digest: DIRECTORY_A.digest(),
|
||||
size: DIRECTORY_A.size(),
|
||||
}).unwrap();
|
||||
dir.add(
|
||||
"b".into(),
|
||||
"b".try_into().unwrap(),
|
||||
Node::Directory{
|
||||
digest: DIRECTORY_B.digest(),
|
||||
size: DIRECTORY_B.size(),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue