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

View file

@ -0,0 +1,8 @@
error[E0599]: no function or associated item named `make_default` found for struct `Value` in the current scope
--> tests/ui/deserialize_missing_default_path.rs:8:39
|
4 | pub struct Value(String);
| ---------------- function or associated item `make_default` not found for this struct
...
8 | #[nix(version = "20..", default = "Value::make_default")]
| ^^^^^^^^^^^^^^^^^^^^^ function or associated item not found in `Value`