lib.strings: add replicate

`strings.replicate` returns n copies of a string, concatenated into a new
string

Co-authored-by: Silvan Mosberger <github@infinisil.com>
This commit is contained in:
h7x4 2023-10-17 01:12:49 +02:00
parent f320b0d46e
commit 206d20426c
No known key found for this signature in database
GPG Key ID: 9F2F7D8250F35146
2 changed files with 19 additions and 0 deletions

View File

@ -144,6 +144,20 @@ rec {
*/
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
the given `subDir` appended to each of the given paths.

View File

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