refactor(tvix/castore): move *Node and Directory to crate root

*Node and Directory are types of the tvix-castore model, not the tvix
DirectoryService model. A DirectoryService only happens to send
Directories.

Move types into individual files in a nodes/ subdirectory, as it's
gotten too cluttered in a single file, and (re-)export all types from
the crate root.

This has the effect that we now cannot poke at private fields directly
from other files inside `crate::directoryservice` (as it's not all in
the same file anymore), but that's a good thing, it now forces us to go
through the proper accessors.

For the same reasons, we currently also need to introduce the `rename`
functions on each *Node directly.

A followup is gonna move the names out of the individual enum kinds, so
we can better represent "unnamed nodes".

Change-Id: Icdb34dcfe454c41c94f2396e8e99973d27db8418
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12199
Reviewed-by: yuka <yuka@yuka.dev>
Autosubmit: flokli <flokli@flokli.de>
Tested-by: BuildkiteCI
This commit is contained in:
Florian Klink 2024-08-13 20:04:58 +03:00 committed by clbot
parent 2f4185ff1a
commit c7845f3c88
42 changed files with 620 additions and 622 deletions

View file

@ -147,7 +147,7 @@ fn digest() {
#[test]
fn validate_empty() {
let d = Directory::default();
assert!(crate::directoryservice::Directory::try_from(d).is_ok());
assert!(crate::Directory::try_from(d).is_ok());
}
#[test]
@ -161,7 +161,7 @@ fn validate_invalid_names() {
}],
..Default::default()
};
match crate::directoryservice::Directory::try_from(d).expect_err("must fail") {
match crate::Directory::try_from(d).expect_err("must fail") {
ValidateDirectoryError::InvalidNode(n, ValidateNodeError::InvalidName(_)) => {
assert_eq!(n, b"")
}
@ -178,7 +178,7 @@ fn validate_invalid_names() {
}],
..Default::default()
};
match crate::directoryservice::Directory::try_from(d).expect_err("must fail") {
match crate::Directory::try_from(d).expect_err("must fail") {
ValidateDirectoryError::InvalidNode(n, ValidateNodeError::InvalidName(_)) => {
assert_eq!(n, b".")
}
@ -196,7 +196,7 @@ fn validate_invalid_names() {
}],
..Default::default()
};
match crate::directoryservice::Directory::try_from(d).expect_err("must fail") {
match crate::Directory::try_from(d).expect_err("must fail") {
ValidateDirectoryError::InvalidNode(n, ValidateNodeError::InvalidName(_)) => {
assert_eq!(n, b"..")
}
@ -212,7 +212,7 @@ fn validate_invalid_names() {
}],
..Default::default()
};
match crate::directoryservice::Directory::try_from(d).expect_err("must fail") {
match crate::Directory::try_from(d).expect_err("must fail") {
ValidateDirectoryError::InvalidNode(n, ValidateNodeError::InvalidName(_)) => {
assert_eq!(n, b"\x00")
}
@ -228,7 +228,7 @@ fn validate_invalid_names() {
}],
..Default::default()
};
match crate::directoryservice::Directory::try_from(d).expect_err("must fail") {
match crate::Directory::try_from(d).expect_err("must fail") {
ValidateDirectoryError::InvalidNode(n, ValidateNodeError::InvalidName(_)) => {
assert_eq!(n, b"foo/bar")
}
@ -247,7 +247,7 @@ fn validate_invalid_digest() {
}],
..Default::default()
};
match crate::directoryservice::Directory::try_from(d).expect_err("must fail") {
match crate::Directory::try_from(d).expect_err("must fail") {
ValidateDirectoryError::InvalidNode(_, ValidateNodeError::InvalidDigestLen(n)) => {
assert_eq!(n, 2)
}
@ -274,7 +274,7 @@ fn validate_sorting() {
],
..Default::default()
};
match crate::directoryservice::Directory::try_from(d).expect_err("must fail") {
match crate::Directory::try_from(d).expect_err("must fail") {
ValidateDirectoryError::WrongSorting(s) => {
assert_eq!(s, b"a");
}
@ -299,7 +299,7 @@ fn validate_sorting() {
],
..Default::default()
};
match crate::directoryservice::Directory::try_from(d).expect_err("must fail") {
match crate::Directory::try_from(d).expect_err("must fail") {
ValidateDirectoryError::DuplicateName(s) => {
assert_eq!(s, b"a");
}
@ -325,7 +325,7 @@ fn validate_sorting() {
..Default::default()
};
crate::directoryservice::Directory::try_from(d).expect("validate shouldn't error");
crate::Directory::try_from(d).expect("validate shouldn't error");
}
// [b, c] and [a] are both properly sorted.
@ -350,6 +350,6 @@ fn validate_sorting() {
..Default::default()
};
crate::directoryservice::Directory::try_from(d).expect("validate shouldn't error");
crate::Directory::try_from(d).expect("validate shouldn't error");
}
}