string_new

Overloaded function creating new dynamic string instance. Created string is guaranteed to be zero terminated.

Warning

Every new string must be deleted by string_delete call.

Declaration

fn () string

Description

Create new empty string object.

Result

New empty string.

main :: fn () s32 {
    str :: string_new();
    defer string_delete(str);
    string_append(&str, "Hello");

    print("str = %\n", str);
    return 0;
}

Declaration

fn (size: usize) string

Description

Create new string with preallocated space. This type of string initialization can reduce count of allocations made later by extending string content. String with length up to size require only one memory allocation.

Hint

This initialization should be preferred if string length can be predicted.

Arguments

  • size Preallocation size in characters.

Result

New string.

Example

main :: fn () s32 {
    str :: string_new(256);
    defer string_delete(str);
    string_append(&str, "Hello");

    print("str = %\n", str);
    return 0;
}

Declaration

fn (v: string) string

Description

Create copy of v string. Allocates memory to hold exactly size of v string data.

Arguments

  • v String to be copied.

Result

New duplicate string.


Declaration

fn (cstr: *u8) string

Description

Create copy of C zero terminated string.

Arguments

  • v Pointer to C string.

Result

New duplicate string.

Declared in: string.bl