authorgravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2024-10-16 04:15:20 -07:00
committergravatar for hello@nektro.netMeghan Denny <hello@nektro.net> 2024-10-16 04:15:20 -07:00
logab91c7909f771c790977c0b0b8fa53a025e280ce
tree5893472d216f764d0740144e4aefe3021b565be1
parentd1d79e5d19db1a6f9b8c35a75bc8abc31d4e06fd

add age


2 files changed, 12 insertions(+), 1 deletions(-)

src/main.zig+1-1
...@@ -110,7 +110,7 @@ export fn u_hasBinaryProperty(cp: u32, prop: t.UProperty) bool {...@@ -110,7 +110,7 @@ export fn u_hasBinaryProperty(cp: u32, prop: t.UProperty) bool {
110 .UCHAR_VERTICAL_ORIENTATION => false, // TODO110 .UCHAR_VERTICAL_ORIENTATION => false, // TODO
111 .UCHAR_GENERAL_CATEGORY_MASK => false, // TODO111 .UCHAR_GENERAL_CATEGORY_MASK => false, // TODO
112 .UCHAR_NUMERIC_VALUE => false, // TODO112 .UCHAR_NUMERIC_VALUE => false, // TODO
113 .UCHAR_AGE => false, // TODO113 .UCHAR_AGE => @as(u16, @bitCast(icu.age(cp))) > 0,
114 .UCHAR_BIDI_MIRRORING_GLYPH => false, // TODO114 .UCHAR_BIDI_MIRRORING_GLYPH => false, // TODO
115 .UCHAR_CASE_FOLDING => false, // TODO115 .UCHAR_CASE_FOLDING => false, // TODO
116 .UCHAR_LOWERCASE_MAPPING => false, // TODO116 .UCHAR_LOWERCASE_MAPPING => false, // TODO
src/root.zig+11
...@@ -36,3 +36,14 @@ pub fn hasEmojiCategory(cp: u32, comptime cat: ucd.emoji.Emoji.Category) bool {...@@ -36,3 +36,14 @@ pub fn hasEmojiCategory(cp: u32, comptime cat: ucd.emoji.Emoji.Category) bool {
36 }36 }
37 return false;37 return false;
38}38}
39
40/// {0,0} means not found
41pub fn age(cp: u32) [2]u8 {
42 @setEvalBranchQuota(100_000);
43 inline for (ucd.derived_age.data) |item| {
44 if (cp >= item.from and cp <= item.to) {
45 return item.since;
46 }
47 }
48 return .{ 0, 0 };
49}