Merge pull request #110672 from Profpatsch/lib-add-traceFnSeqN
lib/debug: add traceFnSeqN
This commit is contained in:
commit
9ba1f22982
@ -148,6 +148,28 @@ rec {
|
|||||||
/* A combination of `traceVal` and `traceSeqN`. */
|
/* A combination of `traceVal` and `traceSeqN`. */
|
||||||
traceValSeqN = traceValSeqNFn id;
|
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 --
|
# -- TESTING --
|
||||||
|
|
||||||
|
@ -130,7 +130,7 @@ let
|
|||||||
assertMsg assertOneOf;
|
assertMsg assertOneOf;
|
||||||
inherit (self.debug) addErrorContextToAttrs traceIf traceVal traceValFn
|
inherit (self.debug) addErrorContextToAttrs traceIf traceVal traceValFn
|
||||||
traceXMLVal traceXMLValMarked traceSeq traceSeqN traceValSeq
|
traceXMLVal traceXMLValMarked traceSeq traceSeqN traceValSeq
|
||||||
traceValSeqFn traceValSeqN traceValSeqNFn traceShowVal
|
traceValSeqFn traceValSeqN traceValSeqNFn traceFnSeqN traceShowVal
|
||||||
traceShowValMarked showVal traceCall traceCall2 traceCall3
|
traceShowValMarked showVal traceCall traceCall2 traceCall3
|
||||||
traceValIfNot runTests testAllTrue traceCallXml attrNamesToStr;
|
traceValIfNot runTests testAllTrue traceCallXml attrNamesToStr;
|
||||||
inherit (self.misc) maybeEnv defaultMergeArg defaultMerge foldArgs
|
inherit (self.misc) maybeEnv defaultMergeArg defaultMerge foldArgs
|
||||||
|
Loading…
Reference in New Issue
Block a user