diff options
| author | Yueh-Shun Li <shamrocklee@posteo.net> | 2024-07-26 03:00:09 +0800 |
|---|---|---|
| committer | Yueh-Shun Li <shamrocklee@posteo.net> | 2024-12-06 11:02:26 +0800 |
| commit | b1371135b5db3fcf728114d92d5bd0218109598a (patch) | |
| tree | 3ad2cb621e27cb52bded4110c0b30ae25023ee80 /lib/strings.nix | |
| parent | python3Packages.pywikibot: init at 9.5.0 (#333068) (diff) | |
| download | nixpkgs-b1371135b5db3fcf728114d92d5bd0218109598a.tar.gz | |
lib.strings.concatMapAttrsStringSep: init
Diffstat (limited to 'lib/strings.nix')
| -rw-r--r-- | lib/strings.nix | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/lib/strings.nix b/lib/strings.nix index d9a2d786ed28..5ea86e0d7e07 100644 --- a/lib/strings.nix +++ b/lib/strings.nix @@ -270,6 +270,43 @@ rec { list: concatStringsSep sep (lib.imap1 f list); /** + Like [`concatMapStringsSep`](#function-library-lib.strings.concatMapStringsSep) + but takes an attribute set instead of a list. + + # Inputs + + `sep` + : Separator to add between item strings + + `f` + : Function that takes each key and value and return a string + + `attrs` + : Attribute set to map from + + # Type + + ``` + concatMapAttrsStringSep :: String -> (String -> Any -> String) -> AttrSet -> String + ``` + + # Examples + + :::{.example} + ## `lib.strings.concatMapAttrsStringSep` usage example + + ```nix + concatMapAttrsStringSep "\n" (name: value: "${name}: foo-${value}") { a = "0.1.0"; b = "0.2.0"; } + => "a: foo-0.1.0\nb: foo-0.2.0" + ``` + + ::: + */ + concatMapAttrsStringSep = + sep: f: attrs: + concatStringsSep sep (lib.attrValues (lib.mapAttrs f attrs)); + + /** Concatenate a list of strings, adding a newline at the end of each one. Defined as `concatMapStrings (s: s + "\n")`. |
