summary refs log tree commit diff
path: root/pkgs/lib/attrsets.nix
diff options
context:
space:
mode:
authorMarc Weber <marco-oweber@gmx.de>2009-03-06 23:21:14 +0000
committerMarc Weber <marco-oweber@gmx.de>2009-03-06 23:21:14 +0000
commit5ddfa7ed64682bae7fbf8dab45a2a1697a6cc425 (patch)
tree8ab63740650281174e2a430e0ea4269911ed7191 /pkgs/lib/attrsets.nix
parentbe3a9f2346cf384aea96b082f285901f54343b3b (diff)
downloadnixpkgs-5ddfa7ed64682bae7fbf8dab45a2a1697a6cc425.tar
nixpkgs-5ddfa7ed64682bae7fbf8dab45a2a1697a6cc425.tar.gz
nixpkgs-5ddfa7ed64682bae7fbf8dab45a2a1697a6cc425.tar.bz2
nixpkgs-5ddfa7ed64682bae7fbf8dab45a2a1697a6cc425.tar.lz
nixpkgs-5ddfa7ed64682bae7fbf8dab45a2a1697a6cc425.tar.xz
nixpkgs-5ddfa7ed64682bae7fbf8dab45a2a1697a6cc425.tar.zst
nixpkgs-5ddfa7ed64682bae7fbf8dab45a2a1697a6cc425.zip
moved catAttrs, attrVals into attrsets.nix, adding attrValues
svn path=/nixpkgs/trunk/; revision=14425
Diffstat (limited to 'pkgs/lib/attrsets.nix')
-rw-r--r--pkgs/lib/attrsets.nix14
1 files changed, 13 insertions, 1 deletions
diff --git a/pkgs/lib/attrsets.nix b/pkgs/lib/attrsets.nix
index 201fb91bd00..a394ff5bd18 100644
--- a/pkgs/lib/attrsets.nix
+++ b/pkgs/lib/attrsets.nix
@@ -1,6 +1,9 @@
 # Operations on attribute sets.
 
-with { inherit (builtins) head tail; };
+with {
+  inherit (builtins) head tail;
+  inherit (import ./default.nix) fold;
+};
 
 rec {
   inherit (builtins) attrNames listToAttrs hasAttr isAttrs;
@@ -18,5 +21,14 @@ rec {
       then getAttr (tail attrPath) default (builtins.getAttr attr e)
       else default;
 
+  # ordered by name
+  attrValues = attrs: attrVals (__attrNames attrs) attrs;
+
+  attrVals = nameList : attrSet :
+    map (x: builtins.getAttr x attrSet) nameList;
+
+  # iterates over a list of attributes collecting the attribute attr if it exists
+  catAttrs = attr : l : fold ( s : l : if (hasAttr attr s) then [(builtins.getAttr attr s)] ++ l else l) [] l;
+
 
 }
\ No newline at end of file