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:
parent
f320b0d46e
commit
206d20426c
2 changed files with 19 additions and 0 deletions
|
@ -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.
|
||||
|
||||
|
|
|
@ -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" ];
|
||||
|
|
Loading…
Reference in a new issue