feat(tvix/nix-compat-derive): Add deriver for NixDeserialize

This adds a nix-compat-derive derive crate that implements a deriver
for NixDeserialize implementations. This is to reduce the amount of
code needed to implement deserialization for all the types used by
the Nix daemon protocol.

Change-Id: I484724b550e8a1d5e9adad9555d9dc1374ae95c2
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12022
Autosubmit: Brian Olsen <me@griff.name>
Tested-by: BuildkiteCI
Reviewed-by: flokli <flokli@flokli.de>
This commit is contained in:
Brian Olsen 2024-07-22 16:51:42 +02:00 committed by clbot
parent 9af6920478
commit ced05a2bb6
48 changed files with 2376 additions and 3 deletions

44
tvix/Cargo.lock generated
View file

@ -2342,6 +2342,7 @@ dependencies = [
"hex-literal",
"lazy_static",
"mimalloc",
"nix-compat-derive",
"nom",
"num-traits",
"pin-project-lite",
@ -2358,6 +2359,35 @@ dependencies = [
"zstd",
]
[[package]]
name = "nix-compat-derive"
version = "0.1.0"
dependencies = [
"hex-literal",
"nix-compat",
"pretty_assertions",
"proc-macro2",
"quote",
"rstest",
"syn 2.0.72",
"tokio",
"tokio-test",
]
[[package]]
name = "nix-compat-derive-tests"
version = "0.1.0"
dependencies = [
"hex-literal",
"nix-compat",
"nix-compat-derive",
"pretty_assertions",
"rstest",
"tokio",
"tokio-test",
"trybuild",
]
[[package]]
name = "nohash-hasher"
version = "0.2.0"
@ -4708,6 +4738,20 @@ version = "0.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
[[package]]
name = "trybuild"
version = "1.0.99"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "207aa50d36c4be8d8c6ea829478be44a372c6a77669937bb39c698e52f1491e8"
dependencies = [
"glob",
"serde",
"serde_derive",
"serde_json",
"termcolor",
"toml 0.8.15",
]
[[package]]
name = "tvix-build"
version = "0.1.0"