diff options
| author | Bruce Hill <bruce@bruce-hill.com> | 2025-08-17 20:35:09 -0400 |
|---|---|---|
| committer | Bruce Hill <bruce@bruce-hill.com> | 2025-08-17 20:35:09 -0400 |
| commit | f4e38fd061a158ecb94881273c6db6e6a332f61d (patch) | |
| tree | 9179cb312dcc1b24d806dfb65694c25580d1ed8b /src/stdlib/text.h | |
| parent | 602cedd03b0c3d6ef176efafb08f51bde9bfe543 (diff) | |
Switch from using dollar signs as namespace delimiters to using 々, ヽ, andunicode-identifiers
〇.
Diffstat (limited to 'src/stdlib/text.h')
| -rw-r--r-- | src/stdlib/text.h | 136 |
1 files changed, 68 insertions, 68 deletions
diff --git a/src/stdlib/text.h b/src/stdlib/text.h index 637a3db7..87e7dcb5 100644 --- a/src/stdlib/text.h +++ b/src/stdlib/text.h @@ -35,82 +35,82 @@ static inline Text_t Text_from_text(Text_t t) { return t; } -#define convert_to_text(x) _Generic(x, Text_t: Text_from_text, char*: Text$from_str, const char*: Text$from_str)(x) +#define convert_to_text(x) _Generic(x, Text_t: Text_from_text, char*: Textヽfrom_str, const char*: Textヽfrom_str)(x) -Text_t Text$_concat(int n, Text_t items[n]); -#define Text$concat(...) Text$_concat(sizeof((Text_t[]){__VA_ARGS__})/sizeof(Text_t), (Text_t[]){__VA_ARGS__}) -#define Texts(...) Text$concat(MAP_LIST(convert_to_text, __VA_ARGS__)) -// int Text$print(FILE *stream, Text_t t); -Text_t Text$slice(Text_t text, Int_t first_int, Int_t last_int); -Text_t Text$from(Text_t text, Int_t first); -Text_t Text$to(Text_t text, Int_t last); -Text_t Text$reversed(Text_t text); -Text_t Text$cluster(Text_t text, Int_t index_int); -OptionalText_t Text$from_str(const char *str); -OptionalText_t Text$from_strn(const char *str, size_t len); -PUREFUNC uint64_t Text$hash(const void *text, const TypeInfo_t*); -PUREFUNC int32_t Text$compare(const void *va, const void *vb, const TypeInfo_t*); -PUREFUNC bool Text$equal(const void *a, const void *b, const TypeInfo_t*); -PUREFUNC bool Text$equal_values(Text_t a, Text_t b); -PUREFUNC bool Text$equal_ignoring_case(Text_t a, Text_t b, Text_t language); -PUREFUNC bool Text$is_none(const void *t, const TypeInfo_t*); -Text_t Text$upper(Text_t text, Text_t language); -Text_t Text$lower(Text_t text, Text_t language); -Text_t Text$title(Text_t text, Text_t language); -Text_t Text$as_text(const void *text, bool colorize, const TypeInfo_t *info); -Text_t Text$quoted(Text_t str, bool colorize, Text_t quotation_mark); -PUREFUNC bool Text$starts_with(Text_t text, Text_t prefix, Text_t *remainder); -PUREFUNC bool Text$ends_with(Text_t text, Text_t suffix, Text_t *remainder); -Text_t Text$without_prefix(Text_t text, Text_t prefix); -Text_t Text$without_suffix(Text_t text, Text_t suffix); -Text_t Text$replace(Text_t text, Text_t target, Text_t replacement); -Text_t Text$translate(Text_t text, Table_t translations); -PUREFUNC bool Text$has(Text_t text, Text_t target); -List_t Text$split(Text_t text, Text_t delimiter); -List_t Text$split_any(Text_t text, Text_t delimiters); -Closure_t Text$by_split(Text_t text, Text_t delimiter); -Closure_t Text$by_split_any(Text_t text, Text_t delimiters); -Text_t Text$trim(Text_t text, Text_t to_trim, bool left, bool right); -char *Text$as_c_string(Text_t text); -List_t Text$clusters(Text_t text); -List_t Text$utf32_codepoints(Text_t text); -List_t Text$utf8_bytes(Text_t text); -List_t Text$codepoint_names(Text_t text); -Text_t Text$from_codepoints(List_t codepoints); -OptionalText_t Text$from_codepoint_names(List_t codepoint_names); -OptionalText_t Text$from_bytes(List_t bytes); -List_t Text$lines(Text_t text); -Closure_t Text$by_line(Text_t text); -Text_t Text$join(Text_t glue, List_t pieces); -Text_t Text$repeat(Text_t text, Int_t count); -Int_t Text$width(Text_t text, Text_t language); -Text_t Text$left_pad(Text_t text, Int_t width, Text_t padding, Text_t language); -Text_t Text$right_pad(Text_t text, Int_t width, Text_t padding, Text_t language); -Text_t Text$middle_pad(Text_t text, Int_t width, Text_t padding, Text_t language); -int32_t Text$get_grapheme_fast(TextIter_t *state, int64_t index); -uint32_t Text$get_main_grapheme_fast(TextIter_t *state, int64_t index); -Int_t Text$memory_size(Text_t text); -Text_t Text$layout(Text_t text); -void Text$serialize(const void *obj, FILE *out, Table_t *, const TypeInfo_t *); -void Text$deserialize(FILE *in, void *out, List_t *, const TypeInfo_t *); +Text_t Textヽ_concat(int n, Text_t items[n]); +#define Textヽconcat(...) Textヽ_concat(sizeof((Text_t[]){__VA_ARGS__})/sizeof(Text_t), (Text_t[]){__VA_ARGS__}) +#define Texts(...) Textヽconcat(MAP_LIST(convert_to_text, __VA_ARGS__)) +// int Textヽprint(FILE *stream, Text_t t); +Text_t Textヽslice(Text_t text, Int_t first_int, Int_t last_int); +Text_t Textヽfrom(Text_t text, Int_t first); +Text_t Textヽto(Text_t text, Int_t last); +Text_t Textヽreversed(Text_t text); +Text_t Textヽcluster(Text_t text, Int_t index_int); +OptionalText_t Textヽfrom_str(const char *str); +OptionalText_t Textヽfrom_strn(const char *str, size_t len); +PUREFUNC uint64_t Textヽhash(const void *text, const TypeInfo_t*); +PUREFUNC int32_t Textヽcompare(const void *va, const void *vb, const TypeInfo_t*); +PUREFUNC bool Textヽequal(const void *a, const void *b, const TypeInfo_t*); +PUREFUNC bool Textヽequal_values(Text_t a, Text_t b); +PUREFUNC bool Textヽequal_ignoring_case(Text_t a, Text_t b, Text_t language); +PUREFUNC bool Textヽis_none(const void *t, const TypeInfo_t*); +Text_t Textヽupper(Text_t text, Text_t language); +Text_t Textヽlower(Text_t text, Text_t language); +Text_t Textヽtitle(Text_t text, Text_t language); +Text_t Textヽas_text(const void *text, bool colorize, const TypeInfo_t *info); +Text_t Textヽquoted(Text_t str, bool colorize, Text_t quotation_mark); +PUREFUNC bool Textヽstarts_with(Text_t text, Text_t prefix, Text_t *remainder); +PUREFUNC bool Textヽends_with(Text_t text, Text_t suffix, Text_t *remainder); +Text_t Textヽwithout_prefix(Text_t text, Text_t prefix); +Text_t Textヽwithout_suffix(Text_t text, Text_t suffix); +Text_t Textヽreplace(Text_t text, Text_t target, Text_t replacement); +Text_t Textヽtranslate(Text_t text, Table_t translations); +PUREFUNC bool Textヽhas(Text_t text, Text_t target); +List_t Textヽsplit(Text_t text, Text_t delimiter); +List_t Textヽsplit_any(Text_t text, Text_t delimiters); +Closure_t Textヽby_split(Text_t text, Text_t delimiter); +Closure_t Textヽby_split_any(Text_t text, Text_t delimiters); +Text_t Textヽtrim(Text_t text, Text_t to_trim, bool left, bool right); +char *Textヽas_c_string(Text_t text); +List_t Textヽclusters(Text_t text); +List_t Textヽutf32_codepoints(Text_t text); +List_t Textヽutf8_bytes(Text_t text); +List_t Textヽcodepoint_names(Text_t text); +Text_t Textヽfrom_codepoints(List_t codepoints); +OptionalText_t Textヽfrom_codepoint_names(List_t codepoint_names); +OptionalText_t Textヽfrom_bytes(List_t bytes); +List_t Textヽlines(Text_t text); +Closure_t Textヽby_line(Text_t text); +Text_t Textヽjoin(Text_t glue, List_t pieces); +Text_t Textヽrepeat(Text_t text, Int_t count); +Int_t Textヽwidth(Text_t text, Text_t language); +Text_t Textヽleft_pad(Text_t text, Int_t width, Text_t padding, Text_t language); +Text_t Textヽright_pad(Text_t text, Int_t width, Text_t padding, Text_t language); +Text_t Textヽmiddle_pad(Text_t text, Int_t width, Text_t padding, Text_t language); +int32_t Textヽget_grapheme_fast(TextIter_t *state, int64_t index); +uint32_t Textヽget_main_grapheme_fast(TextIter_t *state, int64_t index); +Int_t Textヽmemory_size(Text_t text); +Text_t Textヽlayout(Text_t text); +void Textヽserialize(const void *obj, FILE *out, Table_t *, const TypeInfo_t *); +void Textヽdeserialize(FILE *in, void *out, List_t *, const TypeInfo_t *); -MACROLIKE int32_t Text$get_grapheme(Text_t text, int64_t index) +MACROLIKE int32_t Textヽget_grapheme(Text_t text, int64_t index) { TextIter_t state = NEW_TEXT_ITER_STATE(text); - return Text$get_grapheme_fast(&state, index); + return Textヽget_grapheme_fast(&state, index); } -extern const TypeInfo_t Text$info; +extern const TypeInfo_t Textヽinfo; extern Text_t EMPTY_TEXT; -#define Text$metamethods { \ - .as_text=Text$as_text, \ - .hash=Text$hash, \ - .compare=Text$compare, \ - .equal=Text$equal, \ - .is_none=Text$is_none, \ - .serialize=Text$serialize, \ - .deserialize=Text$deserialize, \ +#define Textヽmetamethods { \ + .as_text=Textヽas_text, \ + .hash=Textヽhash, \ + .compare=Textヽcompare, \ + .equal=Textヽequal, \ + .is_none=Textヽis_none, \ + .serialize=Textヽserialize, \ + .deserialize=Textヽdeserialize, \ } // vim: ts=4 sw=0 et cino=L2,l1,(0,W4,m1,\:0 |
