Module string/string_builder

string/string_builder

Mutable UTF-8 string builder for efficient incremental construction.

Types

StringBuilder object
StringBuilder

Mutable buffer for building a String incrementally.

Use StringBuilder when you need to construct a string from many parts, appending bytes or strings in a loop, before converting to an immutable String with to_string().

Example

sb := StringBuilder.new();
sb.write_str("Hello");
sb.write_str(", ");
sb.write_string(`world`);
sb.write_byte(u8(33));  // '!'
result := sb.to_string();
assert(result == `Hello, world!`, "built string");

Fields

NameTypeDescription
_bufArrayList(u8)
impl(StringBuilder, ...)
new : (StringBuilder) fn() -> StringBuilder

Create a new, empty StringBuilder.

Returns: StringBuilder

with_capacity : (StringBuilder) fn(capacity : usize) -> StringBuilder

Create a StringBuilder pre-allocated for capacity bytes.

Parameters

NameTypeNotes
capacityusize

Returns: StringBuilder

len : (StringBuilder) fn(self : StringBuilder) -> usize

Returns the current number of bytes in the buffer.

Parameters

NameTypeNotes
selfStringBuilder

Returns: usize

is_empty : (StringBuilder) fn(self : StringBuilder) -> bool

Returns true if the buffer is empty.

Parameters

NameTypeNotes
selfStringBuilder

Returns: bool

write_str : (StringBuilder) fn(self : StringBuilder, s : str) -> unit

Append a str (raw byte slice) to the buffer.

Parameters

NameTypeNotes
selfStringBuilder
sstr

Returns: unit

write_string : (StringBuilder) fn(self : StringBuilder, s : String) -> unit

Append a String to the buffer.

Parameters

NameTypeNotes
selfStringBuilder
sString

Returns: unit

write_byte : (StringBuilder) fn(self : StringBuilder, b : u8) -> unit

Append a single byte to the buffer.

Parameters

NameTypeNotes
selfStringBuilder
bu8

Returns: unit

write_rune : (StringBuilder) fn(self : StringBuilder, r : rune) -> unit

Append a single Unicode code point, encoded as UTF-8.

Example

sb := StringBuilder.new();
sb.write_rune(rune(0x1F600));  // 😀
sb.write_rune(rune(0x41));     // 'A'

Parameters

NameTypeNotes
selfStringBuilder
rrune

Returns: unit

write_line : (StringBuilder) fn(self : StringBuilder, s : String) -> unit

Append a String followed by a newline byte (\n).

Parameters

NameTypeNotes
selfStringBuilder
sString

Returns: unit

to_string : (StringBuilder) fn(self : StringBuilder) -> String

Consume the builder and return the accumulated String. The builder is left empty after this call.

Parameters

NameTypeNotes
selfStringBuilder

Returns: String

clear : (StringBuilder) fn(self : StringBuilder) -> unit

Clear the buffer without freeing memory.

Parameters

NameTypeNotes
selfStringBuilder

Returns: unit