sneeuwvlok/_lib/attrs.nix
2025-07-28 14:34:09 +02:00

21 lines
549 B
Nix

{ lib, ... }:
let
inherit (lib.lists) any count;
inherit (lib.attrsets) filterAttrs listToAttrs mapAttrs' mapAttrsToList;
in rec
{
attrsToList = attrs:
mapAttrsToList (name: value: { inherit name value; }) attrs;
mapFilterAttrs = pred: f: attrs:
filterAttrs pred (mapAttrs' f attrs);
getAttrs' = values: f:
listToAttrs (map f values);
anyAttrs = pred: attrs:
any (attr: pred attr.name attr.value) (attrsToList attrs);
countAttrs = pred: attrs:
count (attr: pred attr.name attr.value) (attrsToList attrs);
}