From 450fd004b8f8358dc46e1bcc1bceae821f7ae158 Mon Sep 17 00:00:00 2001
From: Thomas Voss <mail@thomasvoss.com>
Date: Fri, 5 Apr 2024 14:26:33 +0200
Subject: Add boolean properties to unicode/prop.h

---
 include/unicode/prop.h | 54 +++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 53 insertions(+), 1 deletion(-)

(limited to 'include')

diff --git a/include/unicode/prop.h b/include/unicode/prop.h
index e3a31ad..291d41b 100644
--- a/include/unicode/prop.h
+++ b/include/unicode/prop.h
@@ -48,6 +48,58 @@ enum [[clang::flag_enum]] uprop_gc : uint_fast32_t {
 	GC_Z = GC_ZL | GC_ZP | GC_ZS,                 /* Separator */
 };
 
-enum uprop_gc uprop_get_gc(rune);
+[[__nodiscard__, __unsequenced__]] enum uprop_gc uprop_get_gc(rune);
+
+/* PROP PREDICATES START */
+[[__nodiscard__, __unsequenced__]] bool uprop_is_ahex(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_alpha(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_bidi_c(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_bidi_m(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_cased(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_ci(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_cwcf(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_cwcm(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_cwkcf(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_cwl(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_cwt(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_cwu(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_dash(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_dep(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_di(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_dia(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_ebase(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_ecomp(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_emod(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_emoji(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_epres(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_ext(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_extpic(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_gr_base(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_gr_ext(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_hex(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_id_compat_math_continue(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_id_compat_math_start(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_idbo(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_idc(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_ideo(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_ids(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_incb(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_loe(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_lower(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_math(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_pat_syn(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_pcm(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_qmark(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_radical(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_sd(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_sterm(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_term(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_uideo(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_upper(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_vs(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_wspace(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_xidc(rune);
+[[__nodiscard__, __unsequenced__]] bool uprop_is_xids(rune);
+/* PROP PREDICATES END */
 
 #endif /* !MLIB_UNICODE_PROP_H */
-- 
cgit v1.2.3