about summary refs log tree commit diff
path: root/tvix/nix-compat-derive/src
AgeCommit message (Collapse)AuthorFilesLines
2024-11-10 r/8898 refactor(nix-compat): Move serialization machinery into wire.Vova Kryachko2-8/+8
This groups most `wire` feature gated logic into a single module. The nix_daemon module will be gated by a feature that adds nix-compat-derive as a dependency. All of this is a way to break the crate2nix dependency cycle between nix-compat and nix-compat-derive(which depends on nix-compat for its doctests). Change-Id: I95938a6f280c11967371ff21f8b5a19e6d3d3805 Reviewed-on: https://cl.tvl.fyi/c/depot/+/12761 Tested-by: BuildkiteCI Reviewed-by: flokli <flokli@flokli.de>
2024-11-04 r/8893 feat(tvix/nix-compat): Add nix serialization supportBrian Olsen6-14/+548
This change implements the serialization part that is needed to implement the nix daemon protocol. Previously was add deserialization and derivers for that and this then adds the other part of that equation so that you can write types that can then be read using deserialization. Change-Id: I2917de634980a93822a4f5a8ad38897b9ce16d89 Reviewed-on: https://cl.tvl.fyi/c/depot/+/12729 Autosubmit: Brian Olsen <me@griff.name> Reviewed-by: flokli <flokli@flokli.de> Tested-by: BuildkiteCI
2024-11-04 r/8892 fix(tvix/nix-compat-derive): Better errors for defaultBrian Olsen2-7/+13
This adds a span to default handling so that any error message gives a more precise location as a hint for why the error occurred instead of just pointing to the type. Change-Id: I7bf6cf38e0284f9726d670ea50a94a6b1edd8a94 Reviewed-on: https://cl.tvl.fyi/c/depot/+/12728 Reviewed-by: Vladimir Kryachko <v.kryachko@gmail.com> Reviewed-by: flokli <flokli@flokli.de> Tested-by: BuildkiteCI Autosubmit: Brian Olsen <me@griff.name>
2024-11-04 r/8887 chore(tvix/nix-compat-derive): Remove references to nixrsBrian Olsen3-5/+8
Some references to nixrs had sneaked in while writing the original CL so this just removes those. Change-Id: I635adbd2de46c7c1f31e1d449396253a78e1b762 Reviewed-on: https://cl.tvl.fyi/c/depot/+/12727 Reviewed-by: Vladimir Kryachko <v.kryachko@gmail.com> Autosubmit: Brian Olsen <me@griff.name> Reviewed-by: flokli <flokli@flokli.de> Tested-by: BuildkiteCI
2024-08-28 r/8602 fix(tvix/nix-compat-derive): Get rid of external feature flagBrian Olsen1-45/+0
The external feature flag was there because I couldn't find a way to refer to crate and nix-compat with the same name so that the generated code could be the same. In essence `use nix_compat::nix_daemon::de::NixDeserialize` is an error when used inside nix_compat crate. So my best fix was the external feature flag until I found the solution used here which also removes the flag completely. Change-Id: Ia3e89c6c350c3fb22ca87f974a39c21542aae152 Reviewed-on: https://cl.tvl.fyi/c/depot/+/12376 Tested-by: BuildkiteCI Reviewed-by: flokli <flokli@flokli.de> Autosubmit: Brian Olsen <me@griff.name>
2024-08-28 r/8601 fix(tvix/nix-compat-derive): Fix doctest for Rust older than 1.80Brian Olsen1-1/+1
Exclusive range patterns were stabilized in Rust version 1.80 but Tvix still uses Rust 1.79 and so would fail this one test when you ran doctests from `mg shell //tvix:shell`. It was not caught by CI because that does not currently run doctests. The fix is just to use an inclusive pattern instead. Fixes: b/417 Change-Id: Ifea7a3b84bb8f6f8c76e277979833713bdf51f46 Reviewed-on: https://cl.tvl.fyi/c/depot/+/12375 Autosubmit: Brian Olsen <me@griff.name> Reviewed-by: flokli <flokli@flokli.de> Tested-by: BuildkiteCI
2024-08-25 r/8586 feat(tvix/nix-compat-derive): Add deriver for NixDeserializeBrian Olsen7-0/+1353
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>