Files
nix-stuff/vaculib/lists.nix
Shelvacu 506ccbe35d stuff
2025-08-12 18:26:23 -07:00

39 lines
605 B
Nix

{ lib, ... }:
rec {
/**
# Type
```
mapListToAttrs :: (a -> { name :: String; value :: b; }) -> [a] -> { ${name} :: b; }
```
*/
mapListToAttrs =
f:
list:
lib.listToAttrs (map f list);
/**
# Type
```
mapNamesToAttrs :: (${name} -> a) -> [${name}] -> { ${name} :: a; }
```
*/
mapNamesToAttrs =
f:
list:
mapListToAttrs (name: { inherit name; value = f name; });
/**
# Type
```
mapNamesToAttrsConst :: a -> [${name}] -> { ${name} :: a; }
```
*/
mapNamesToAttrsConst =
a:
list:
mapNamesToAttrs (_: a);
}