feat(lib): coalesce

This commit is contained in:
arcnmx 2024-04-16 03:07:26 -07:00
parent 280ec3af3e
commit 496f29f50f

View file

@ -6,7 +6,7 @@
nixlib = inputs.nixpkgs.lib; nixlib = inputs.nixpkgs.lib;
inherit (nixlib.modules) mkOrder mkOverride defaultOverridePriority; inherit (nixlib.modules) mkOrder mkOverride defaultOverridePriority;
inherit (nixlib.strings) splitString toLower; inherit (nixlib.strings) splitString toLower;
inherit (nixlib.lists) imap0 elemAt; inherit (nixlib.lists) imap0 elemAt findFirst;
inherit (nixlib.attrsets) mapAttrs listToAttrs nameValuePair; inherit (nixlib.attrsets) mapAttrs listToAttrs nameValuePair;
inherit (nixlib.strings) hasPrefix hasInfix substring fixedWidthString replaceStrings concatMapStringsSep; inherit (nixlib.strings) hasPrefix hasInfix substring fixedWidthString replaceStrings concatMapStringsSep;
inherit (nixlib.trivial) flip toHexString bitOr; inherit (nixlib.trivial) flip toHexString bitOr;
@ -37,6 +37,7 @@
mkBaseDn = domain: concatMapStringsSep "," (part: "dc=${part}") (splitString "." domain); mkBaseDn = domain: concatMapStringsSep "," (part: "dc=${part}") (splitString "." domain);
mkAddress6 = addr: if hasInfix ":" addr && ! hasPrefix "[" addr then "[${addr}]" else addr; mkAddress6 = addr: if hasInfix ":" addr && ! hasPrefix "[" addr then "[${addr}]" else addr;
coalesce = findFirst (v: v != null) null;
mapListToAttrs = f: l: listToAttrs (map f l); mapListToAttrs = f: l: listToAttrs (map f l);
overrideOptionDefault = 1500; overrideOptionDefault = 1500;
@ -80,7 +81,7 @@ in {
inherit treeToModulesOutput userIs inherit treeToModulesOutput userIs
eui64 mkWinPath mkBaseDn mkAddress6 eui64 mkWinPath mkBaseDn mkAddress6
toHexStringLower hexCharToInt toHexStringLower hexCharToInt
mapListToAttrs mapListToAttrs coalesce
mkAlmostOptionDefault mkAlmostDefault mkAlmostForce mapOverride mapOptionDefaults mapAlmostOptionDefaults mapDefaults mkAlmostOptionDefault mkAlmostDefault mkAlmostForce mapOverride mapOptionDefaults mapAlmostOptionDefaults mapDefaults
overrideOptionDefault overrideAlmostOptionDefault overrideDefault overrideAlmostDefault overrideNone overrideAlmostForce overrideForce overrideVM overrideOptionDefault overrideAlmostOptionDefault overrideDefault overrideAlmostDefault overrideNone overrideAlmostForce overrideForce overrideVM
orderBefore orderNone orderAfter orderAlmostAfter orderBefore orderNone orderAfter orderAlmostAfter