module
TermBuf::Unicode::Tables
Overview
Character properties packed one UInt16 to a range of code points.
Unicode is the way in; nothing here is meant to be read directly.
Defined in:
termbuf/unicode/tables.crConstant Summary
-
AMBIGUOUS_BIT =
64_u16 -
GCB_MASK =
15_u16 -
INCB_MASK =
768_u16 -
INCB_SHIFT =
8_u16 -
PICTOGRAPHIC_BIT =
128_u16 -
RANGE_COUNT =
2447 -
RANGE_PROPS =
begin slice = Slice(UInt16).new(RANGE_COUNT, 0_u16) decode(PROP_WORDS, RANGE_COUNT) do |index, word| slice[index] = word.to_u16 end slice end -
Packed properties for the range beginning at the same index.
-
RANGE_START =
begin slice = Slice(Int32).new(RANGE_COUNT, 0) running = 0 decode(START_DELTAS, RANGE_COUNT) do |index, delta| running = running + delta slice[index] = running end slice end -
First code point of each range, ascending. Range
nruns fromRANGE_START[n]throughRANGE_START[n + 1] - 1, so the ranges tile the whole code point space and a lookup never misses. -
UNICODE_VERSION =
"16.0.0" -
WIDTH_MASK =
48_u16 -
WIDTH_SHIFT =
4_u16