Merge pull request #4245 from snprajwal/str-withprefix

builtin(str): add Str.withPrefix
This commit is contained in:
Richard Feldman 2022-10-09 11:53:24 -07:00 committed by GitHub
commit 07ceabc9aa
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 30 additions and 0 deletions

View file

@ -44,6 +44,7 @@ interface Str
walkScalars,
walkScalarsUntil,
withCapacity,
withPrefix,
]
imports [
Bool.{ Bool },
@ -565,3 +566,7 @@ strToNumHelp = \string ->
Ok result.aresult
else
Err InvalidNumStr
## Adds the specified prefix to the string, like a reversed Str.concat
withPrefix : Str, Str -> Str
withPrefix = \str, prefix -> Str.concat prefix str

View file

@ -1297,6 +1297,7 @@ define_builtins! {
51 STR_REPLACE_FIRST: "replaceFirst"
52 STR_REPLACE_LAST: "replaceLast"
53 STR_WITH_CAPACITY: "withCapacity"
54 STR_WITH_PREFIX: "withPrefix"
}
6 LIST: "List" => {
0 LIST_LIST: "List" exposed_apply_type=true // the List.List type alias

View file

@ -1958,3 +1958,27 @@ fn with_capacity_concat() {
RocStr
);
}
#[test]
#[cfg(any(feature = "gen-llvm", feature = "gen-wasm"))]
fn str_with_prefix() {
assert_evals_to!(
indoc!(
r#"
Str.withPrefix "world!" "Hello "
"#
),
RocStr::from("Hello world!"),
RocStr
);
assert_evals_to!(
indoc!(
r#"
"two" |> Str.withPrefix "Forty "
"#
),
RocStr::from("Forty two"),
RocStr
);
}