stockholm/4lib/krebs/default.nix

34 lines
602 B
Nix
Raw Normal View History

2015-07-24 10:23:52 +00:00
{ lib, ... }:
2015-07-24 18:48:00 +00:00
with builtins;
with lib;
builtins // lib // rec {
addName = name: set:
set // { inherit name; };
addNames = mapAttrs addName;
2015-07-24 10:23:52 +00:00
types = import ./types.nix { inherit lib; };
2015-07-25 00:14:44 +00:00
# listset k v = set k [v]
# listset-insert : k -> v -> listset k v -> listset k v
listset-insert = name: value: set:
set // { ${name} = set.${name} or [] ++ [value]; };
# tree k v = set k (either v (tree k v))
# tree-get : [k] -> tree k v -> v
tree-get = path: x:
let
y = x.${last path};
in
if typeOf y != "set"
then y
else tree-get (init path) y;
2015-07-24 10:23:52 +00:00
}