From dfa4c4847c2c597300a5ee4fa80a209d2a6453e0 Mon Sep 17 00:00:00 2001 From: sterni Date: Sun, 23 Oct 2022 23:03:49 +0200 Subject: refactor(sterni/nix/fun): key can also be an int Change-Id: Ia27be70ef07d9aa7d13821a2808ded9cf16506c8 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7073 Reviewed-by: sterni Autosubmit: sterni Tested-by: BuildkiteCI --- users/sterni/nix/fun/default.nix | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/users/sterni/nix/fun/default.nix b/users/sterni/nix/fun/default.nix index bb10f9e6c1..824cebfed2 100644 --- a/users/sterni/nix/fun/default.nix +++ b/users/sterni/nix/fun/default.nix @@ -192,20 +192,18 @@ let # and the list of arguments to pass to be found in args. startSet = [ { - key = "0"; - id = 0; + key = 0; final = false; inherit args; } ]; operator = - { id, final, ... }@state: + { key, final, ... }@state: let # Plumbing to make genericClosure happy - newIds = { - key = toString (id + 1); - id = id + 1; + newId = { + key = key + 1; }; # Perform recursion step @@ -215,10 +213,10 @@ let # otherwise signal that we're done. newState = if builtins.isAttrs call && call.__tailCall or false - then newIds // { + then newId // { final = false; inherit (call) args; - } else newIds // { + } else newId // { final = true; value = call; }; -- cgit 1.4.1