summaryrefslogtreecommitdiff
path: root/example/string.c
blob: fbd09432dd84917cb99f57841fd2db1664dd1757 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include "prb.h"

i32 main(void)
{
	printf("Strings:\n");

	arena_t str_arena = alloc_arena(0);
	str8_list_t strlist = {0};
	str8_list_push(&str_arena, &strlist, 0, str8lit("first "));
	str8_list_push(&str_arena, &strlist, 0, str8lit("second "));
	str8_list_push(&str_arena, &strlist, 0, str8lit("third\n"));
	str8_print(str8lit("strlist: "));
	str8_list_print(&strlist);

	str8_t fstr = str8_pushf(&str_arena, "Formatted string: %d\n", 69);
	str8_print(fstr);

	memzero_struct(&strlist);
	str8_list_pushf(&str_arena, &strlist, 0, "first %d -> ", 34);
	str8_list_pushf(&str_arena, &strlist, 0, "second: %d -> ", 35);
	str8_list_pushf(&str_arena, &strlist, 0, "sum: %d\n", 34+35);
	str8_list_pushf(&str_arena, &strlist, 1, "%s", "To the front -> ");

	str8_print(str8lit("Formatted string list:\n"));
	str8_list_print(&strlist);

	str8_t catstr = str8_list_join(&str_arena, &strlist);
	str8_print(str8lit("Concatenated string list:\n"));
	str8_print(catstr);

	release_arena(&str_arena);

	return(0);
}