blob: f327df855c6b56d8d4fb6b4b7b209fc6bfbf69b6 (
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
|
#pragma once
#include <stddef.h>
struct PsiStringBuilder
{
char *data;
size_t len;
size_t cap;
};
struct PsiStringBuilder psi_new_string_builder(void);
void psi_string_builder_append(struct PsiStringBuilder *sb, const char *s);
char *psi_string_builder_finish(struct PsiStringBuilder *sb);
struct PsiGlyphRow
{
char (*cells)[5];
size_t width;
};
struct PsiGlyphRow psi_new_glyph_row(size_t width);
void psi_free_glyph_row(struct PsiGlyphRow *row);
void psi_glyph_row_set(struct PsiGlyphRow *row, size_t index, const char *glyph);
size_t psi_glyph_row_place(struct PsiGlyphRow *row, size_t start, const char *utf8);
void psi_glyph_row_fill_space(struct PsiGlyphRow *row, size_t from, size_t to, const char *glyph);
void psi_glyph_row_render(struct PsiGlyphRow row, struct PsiStringBuilder *sb);
size_t psi_utf8_count(const char *s);
|