diff options
author | Alyssa Ross <hi@alyssa.is> | 2021-02-16 18:32:21 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2021-02-16 18:32:21 +0000 |
commit | 9becdcc5df71b47a5da84ad670e9a7eae9e0c65a (patch) | |
tree | 2ddf0335eb393f89501e3753b50c3f7ab0552d12 /nixpkgs/lib/debug.nix | |
parent | 49f2a77ac9abc88c253f68952eda26557fc3b555 (diff) | |
parent | ff96a0fa5635770390b184ae74debea75c3fd534 (diff) | |
download | nixlib-9becdcc5df71b47a5da84ad670e9a7eae9e0c65a.tar nixlib-9becdcc5df71b47a5da84ad670e9a7eae9e0c65a.tar.gz nixlib-9becdcc5df71b47a5da84ad670e9a7eae9e0c65a.tar.bz2 nixlib-9becdcc5df71b47a5da84ad670e9a7eae9e0c65a.tar.lz nixlib-9becdcc5df71b47a5da84ad670e9a7eae9e0c65a.tar.xz nixlib-9becdcc5df71b47a5da84ad670e9a7eae9e0c65a.tar.zst nixlib-9becdcc5df71b47a5da84ad670e9a7eae9e0c65a.zip |
nixpkgs: merge nixos-unstable
Diffstat (limited to 'nixpkgs/lib/debug.nix')
-rw-r--r-- | nixpkgs/lib/debug.nix | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/nixpkgs/lib/debug.nix b/nixpkgs/lib/debug.nix index ea6aed60ab43..e3ca3352397e 100644 --- a/nixpkgs/lib/debug.nix +++ b/nixpkgs/lib/debug.nix @@ -148,6 +148,28 @@ rec { /* A combination of `traceVal` and `traceSeqN`. */ traceValSeqN = traceValSeqNFn id; + /* Trace the input and output of a function `f` named `name`, + both down to `depth`. + + This is useful for adding around a function call, + to see the before/after of values as they are transformed. + + Example: + traceFnSeqN 2 "id" (x: x) { a.b.c = 3; } + trace: { fn = "id"; from = { a.b = {…}; }; to = { a.b = {…}; }; } + => { a.b.c = 3; } + */ + traceFnSeqN = depth: name: f: v: + let res = f v; + in lib.traceSeqN + (depth + 1) + { + fn = name; + from = v; + to = res; + } + res; + # -- TESTING -- |