aboutsummaryrefslogtreecommitdiff
path: root/doc/manual/utils.nix
blob: d4b18472fe7f5309df35d5e66cb003c85a536a9f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
with builtins;

rec {
  splitLines = s: filter (x: !isList x) (split "\n" s);

  concatStrings = concatStringsSep "";

  # FIXME: O(n^2)
  unique = foldl' (acc: e: if elem e acc then acc else acc ++ [ e ]) [];

  nameValuePair = name: value: { inherit name value; };

  filterAttrs = pred: set:
    listToAttrs (concatMap (name: let v = set.${name}; in if pred name v then [(nameValuePair name v)] else []) (attrNames set));
}