feat(tvix/serde): initial Nix->serde::Deserialize impl

This will make it possible fairly easily use Nix to represent
arbitrary data structures, e.g. for using Nix as a config language.

Only pure Nix (i.e. no `import` etc.) is supported for now.

Not all types, specifically no struct traversal, are implemented in
this commit.

Change-Id: I9ac91a229a0d12bf818e6e3249f3e5a691599a2c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7712
Tested-by: BuildkiteCI
Reviewed-by: flokli <flokli@flokli.de>
This commit is contained in:
Vincent Ambo 2022-12-31 18:13:59 +03:00 committed by tazjin
parent 49ee3e3b14
commit 90c32eec7a
8 changed files with 485 additions and 0 deletions

8
tvix/serde/src/lib.rs Normal file
View file

@ -0,0 +1,8 @@
//! `tvix-serde` implements (de-)serialisation of Rust data structures
//! to/from Nix. This is intended to make it easy to use Nix as as
//! configuration language.
mod de;
mod error;
pub use de::from_str;