Merge pull request #261676 from h7x4/lib-add-replicatestring

lib.strings: add `replicate`
This commit is contained in:
Silvan Mosberger 2023-11-07 18:29:31 +01:00 committed by GitHub
commit 17012aa0d2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 19 additions and 0 deletions

View file

@ -144,6 +144,20 @@ rec {
*/ */
concatLines = concatMapStrings (s: s + "\n"); concatLines = concatMapStrings (s: s + "\n");
/*
Replicate a string n times,
and concatenate the parts into a new string.
Type: replicate :: int -> string -> string
Example:
replicate 3 "v"
=> "vvv"
replicate 5 "hello"
=> "hellohellohellohellohello"
*/
replicate = n: s: concatStrings (lib.lists.replicate n s);
/* Construct a Unix-style, colon-separated search path consisting of /* Construct a Unix-style, colon-separated search path consisting of
the given `subDir` appended to each of the given paths. the given `subDir` appended to each of the given paths.

View file

@ -191,6 +191,11 @@ runTests {
expected = "a\nb\nc\n"; expected = "a\nb\nc\n";
}; };
testReplicateString = {
expr = strings.replicate 5 "hello";
expected = "hellohellohellohellohello";
};
testSplitStringsSimple = { testSplitStringsSimple = {
expr = strings.splitString "." "a.b.c.d"; expr = strings.splitString "." "a.b.c.d";
expected = [ "a" "b" "c" "d" ]; expected = [ "a" "b" "c" "d" ];