blob: 9353433c9b8df507baf466e4632f742ba46adb8d (
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);
|