aboutsummaryrefslogtreecommitdiff
path: root/include/unicode/string.h
diff options
context:
space:
mode:
authorThomas Voss <mail@thomasvoss.com> 2024-04-16 02:14:07 +0200
committerThomas Voss <mail@thomasvoss.com> 2024-04-16 02:14:07 +0200
commitfcc4316b28ecc353595ec3efd98b101494a0d2ae (patch)
treedf3bf570993247e25745cfb78484ec73175a3115 /include/unicode/string.h
parent43b04a1bfaecfabe8b3460575db7be5d592f896b (diff)
Add _attrs.h for function attributes
Diffstat (limited to 'include/unicode/string.h')
-rw-r--r--include/unicode/string.h16
1 files changed, 9 insertions, 7 deletions
diff --git a/include/unicode/string.h b/include/unicode/string.h
index d80f04c..3a8c77a 100644
--- a/include/unicode/string.h
+++ b/include/unicode/string.h
@@ -17,14 +17,16 @@ enum [[clang::__flag_enum__]] caseflags {
/* clang-format on */
-size_t u8glen(const char8_t *, size_t);
+[[__nodiscard__]] size_t u8glen(const char8_t *, size_t);
size_t u8gnext(struct u8view *, const char8_t **, size_t *);
-size_t u8casefold(char8_t *restrict, size_t, const char8_t *, size_t,
- enum caseflags);
-size_t u8lower(char8_t *restrict, size_t, const char8_t *, size_t,
- enum caseflags);
-size_t u8upper(char8_t *restrict, size_t, const char8_t *, size_t,
- enum caseflags);
+#define _mlib_warn_trunc __nodiscard__("don’t forget to check for truncation")
+
+[[_mlib_warn_trunc]] size_t u8casefold(char8_t *restrict, size_t,
+ const char8_t *, size_t, enum caseflags);
+[[_mlib_warn_trunc]] size_t u8lower(char8_t *restrict, size_t, const char8_t *,
+ size_t, enum caseflags);
+[[_mlib_warn_trunc]] size_t u8upper(char8_t *restrict, size_t, const char8_t *,
+ size_t, enum caseflags);
#endif /* !MLIB_UNICODE_STRING_H */