From 496f29f50f0686e5dbf1b03bbf2b321ed6fe050f Mon Sep 17 00:00:00 2001 From: arcnmx Date: Tue, 16 Apr 2024 03:07:26 -0700 Subject: [PATCH] feat(lib): coalesce --- lib.nix | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib.nix b/lib.nix index 5a5fcfa1..2afa318f 100644 --- a/lib.nix +++ b/lib.nix @@ -6,7 +6,7 @@ nixlib = inputs.nixpkgs.lib; inherit (nixlib.modules) mkOrder mkOverride defaultOverridePriority; inherit (nixlib.strings) splitString toLower; - inherit (nixlib.lists) imap0 elemAt; + inherit (nixlib.lists) imap0 elemAt findFirst; inherit (nixlib.attrsets) mapAttrs listToAttrs nameValuePair; inherit (nixlib.strings) hasPrefix hasInfix substring fixedWidthString replaceStrings concatMapStringsSep; inherit (nixlib.trivial) flip toHexString bitOr; @@ -37,6 +37,7 @@ mkBaseDn = domain: concatMapStringsSep "," (part: "dc=${part}") (splitString "." domain); mkAddress6 = addr: if hasInfix ":" addr && ! hasPrefix "[" addr then "[${addr}]" else addr; + coalesce = findFirst (v: v != null) null; mapListToAttrs = f: l: listToAttrs (map f l); overrideOptionDefault = 1500; @@ -80,7 +81,7 @@ in { inherit treeToModulesOutput userIs eui64 mkWinPath mkBaseDn mkAddress6 toHexStringLower hexCharToInt - mapListToAttrs + mapListToAttrs coalesce mkAlmostOptionDefault mkAlmostDefault mkAlmostForce mapOverride mapOptionDefaults mapAlmostOptionDefaults mapDefaults overrideOptionDefault overrideAlmostOptionDefault overrideDefault overrideAlmostDefault overrideNone overrideAlmostForce overrideForce overrideVM orderBefore orderNone orderAfter orderAlmostAfter