From 631e545b574ae8b176806afda8179a1508392e4a Mon Sep 17 00:00:00 2001 From: h7x4 Date: Mon, 7 Apr 2025 11:13:15 +0200 Subject: [PATCH] filterAttrs: init --- flake.nix | 1 + src/filterAttrs.nix | 11 +++++++++++ 2 files changed, 12 insertions(+) create mode 100644 src/filterAttrs.nix diff --git a/flake.nix b/flake.nix index 4e51d15..34d58c0 100644 --- a/flake.nix +++ b/flake.nix @@ -16,5 +16,6 @@ unique = import ./src/unique.nix lib; overrideExisting = import ./src/overrideExisting.nix lib; findFirstIndex = import ./src/findFirstIndex.nix lib; + filterAttrs = import ./src/filterAttrs.nix lib; }; } diff --git a/src/filterAttrs.nix b/src/filterAttrs.nix new file mode 100644 index 0000000..14a2b11 --- /dev/null +++ b/src/filterAttrs.nix @@ -0,0 +1,11 @@ +lib: +let + filterAttrsOld = pred: set: builtins.removeAttrs set (builtins.filter (name: !pred name set.${name}) (builtins.attrNames set)); + + filterAttrsNew = pred: set: builtins.removeAttrs set (builtins.partition (name: pred name set.${name}) (builtins.attrNames set)).wrong; + + bigdata = lib.genAttrs (lib.imap0 (i: _: toString i) (lib.replicate 999999 null)) (_: null); +in { + old = filterAttrsOld (name: value: name == "345" || name == "927") bigdata; + new = filterAttrsNew (name: value: name == "345" || name == "927") bigdata; +}