ladybird/Libraries/LibUnicode
Timothy Flynn fe676585f5 AK: Add a UTF-16 string with optimized short- and ASCII-string storage
This is a strictly UTF-16 string with some optimizations for ASCII.

* If created from a short UTF-8 or UTF-16 string that is also ASCII,
  then the string is stored in an inlined byte buffer.

* If created with a long UTF-8 or UTF-16 string that is also ASCII,
  then the string is stored in an outlined char buffer.

* If created with a short or long UTF-8 or UTF-16 string that is not
  ASCII, then the string is stored in an outlined char16 buffer.

We do not store short non-ASCII text in the inlined buffer to avoid
confusion with operations such as `length_in_code_units` and
`code_unit_at`. For example, "😀" would be stored as 4 UTF-8 bytes
in short string form. But we still want `length_in_code_units` to
be 2, and `code_unit_at(0)` to be 0xD83D.
2025-07-18 12:45:38 -04:00
..
CharacterTypes.cpp
CharacterTypes.h
CMakeLists.txt CMake: Rename serenity_* helper functions/macros to ladybird_* 2025-07-03 23:19:41 +02:00
Collator.cpp
Collator.h
CurrencyCode.cpp Everywhere: Include HashMap only where it's actually used 2024-12-09 12:31:16 +01:00
CurrencyCode.h Everywhere: Include HashMap only where it's actually used 2024-12-09 12:31:16 +01:00
DateTimeFormat.cpp Everywhere: Fix typos - act III 2025-06-16 14:20:48 +01:00
DateTimeFormat.h
DisplayNames.cpp
DisplayNames.h
DurationFormat.cpp LibJS: Ensure relevant extension keys are included in ICU locale data 2025-03-18 11:47:23 -04:00
DurationFormat.h
Forward.h
ICU.cpp AK+Everywhere: Prepare Utf16View for integration with a UTF-16 string 2025-07-03 09:51:56 -04:00
ICU.h LibUnicode: Provide string length to ICU string enumeration callbacks 2025-06-03 09:03:33 +12:00
IDNA.cpp Meta+LibUnicode+LibJS: Upgrade to ICU 76.1 2025-01-18 17:56:40 -05:00
IDNA.h LibUnicode: Support IgnorePunnycode option in ToAscii algorithm 2024-12-05 17:29:49 +01:00
ListFormat.cpp
ListFormat.h
Locale.cpp
Locale.h
Normalize.cpp
Normalize.h
NumberFormat.cpp LibJS+LibUnicode: Remove unused FormatNumericToString AO 2025-07-08 11:19:27 -04:00
NumberFormat.h LibJS+LibUnicode: Remove unused FormatNumericToString AO 2025-07-08 11:19:27 -04:00
PartitionRange.h
PluralRules.cpp
PluralRules.h LibJS+LibUnicode: Designate a sort order for Intl.PluralRules categories 2024-12-05 09:49:55 +01:00
RelativeTimeFormat.cpp
RelativeTimeFormat.h
Segmenter.cpp AK: Add a UTF-16 string with optimized short- and ASCII-string storage 2025-07-18 12:45:38 -04:00
Segmenter.h
String.cpp
TimeZone.cpp LibJS+LibUnicode: Support ambiguous time zone transitions 2025-06-03 09:09:21 +12:00
TimeZone.h LibJS+LibUnicode: Support ambiguous time zone transitions 2025-06-03 09:09:21 +12:00
UnicodeKeywords.cpp LibJS+LibUnicode: Implement retrieval of collator keyword values 2025-06-03 09:03:33 +12:00
UnicodeKeywords.h