feat(tvix/eval): implement builtins.toJSON
Implements `Serialize` for `tvix_eval::Value`. Special care is taken with serialisation of attribute sets, and forcing of thunks. The tests should cover both cases well. Change-Id: I9bb135bacf6f87bc6bd0bd88cef0a42308e6c335 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7803 Reviewed-by: flokli <flokli@flokli.de> Tested-by: BuildkiteCI Autosubmit: tazjin <tazjin@tvl.su>
This commit is contained in:
parent
fc7e52b4ac
commit
02d35e4aa6
11 changed files with 75 additions and 10 deletions
|
|
@ -0,0 +1 @@
|
|||
"[42,\"hello\",13.37,[],[1,2,3],{},{\"name\":\"foo\",\"value\":42},{\"foo\":42}]"
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
# tests serialisation of literal data
|
||||
builtins.toJSON [
|
||||
42
|
||||
"hello"
|
||||
13.37
|
||||
[ ]
|
||||
[ 1 2 3 ]
|
||||
{ }
|
||||
{ name = "foo"; value = 42; }
|
||||
{ foo = 42; }
|
||||
]
|
||||
|
|
@ -0,0 +1 @@
|
|||
"[42,42,\"42\"]"
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
let
|
||||
a = b * 2;
|
||||
b = 21;
|
||||
in
|
||||
builtins.toJSON [
|
||||
a
|
||||
((n: n * 2) 21)
|
||||
(builtins.toJSON a)
|
||||
]
|
||||
Loading…
Add table
Add a link
Reference in a new issue