Files

89 lines
1.4 KiB
Plaintext

// strings.vr — string helpers (part of the VuurRaaf stdlib).
//
// import strings
// println(strings.join(["a", "b"], ", "))
// println(strings.capitalize("hello"))
fn length(s) {
return len(s)
}
fn lines(s) {
return split_lines(s)
}
fn split(s, delim) {
return split(s, delim)
}
fn join(parts, delim) {
return join(parts, delim)
}
fn replace(s, from, to) {
return replace(s, from, to)
}
fn contains(s, sub) {
return contains(s, sub)
}
fn starts_with(s, prefix) {
return starts_with(s, prefix)
}
fn ends_with(s, suffix) {
return ends_with(s, suffix)
}
fn upper(s) {
return upper(s)
}
fn lower(s) {
return lower(s)
}
fn trim(s) {
return trim(s)
}
fn pad(s, width) {
return pad(s, width)
}
fn pad_left(s, width) {
return pad_left(s, width)
}
fn repeat(s, n) {
return repeat(s, n)
}
fn format(x, spec) {
return format(x, spec)
}
fn capitalize(s) {
if len(s) == 0 {
return s
}
return upper(s[0]) + s[1..]
}
// builder returns a fresh string builder. Append pieces with build_add and
// materialize once with build_str — O(n) total instead of O(n^2) for a long
// chain of `+`. The same functions are available unqualified as sb_new,
// sb_add, sb_str (used internally by this module's builtin-backed helpers).
fn builder() {
return sb_new()
}
fn build_add(sb, piece) {
return sb_add(sb, piece)
}
fn build_str(sb) {
return sb_str(sb)
}