From b0a7f88f07987e3551ef787ddb5e961940a89a5b Mon Sep 17 00:00:00 2001
From: Stefan Ravn van Overeem <StefanRvO@users.noreply.github.com>
Date: Thu, 3 Aug 2023 17:41:54 +0200
Subject: [PATCH] Change WordBreakProperty underlying type to int8_t (#715)

This yields a ~1% performance improvements, likely
because the smaller types causes less load on memory
when bisearching the WordBreakProperty interval table

Co-authored-by: ArthurSonzogni <sonzogniarthur@gmail.com>
---
 CHANGELOG.md                         | 4 ++++
 src/ftxui/screen/string_internal.hpp | 2 +-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index f9f0e341..e8c11b08 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -35,6 +35,10 @@ current (development)
   See the [OSC 8 page](https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda).
   FTXUI support proposed by @aaleino in [#662](https://github.com/ArthurSonzogni/FTXUI/issues/662).
 
+### Screen
+- Breaking: `WordBreakProperty` becomes a uint8_t enum. This yields a 0.8%
+  performance improvement.
+
 
 ### Build
 - Check version compatibility when using cmake find_package()
diff --git a/src/ftxui/screen/string_internal.hpp b/src/ftxui/screen/string_internal.hpp
index 1d85b3e6..7015d3bf 100644
--- a/src/ftxui/screen/string_internal.hpp
+++ b/src/ftxui/screen/string_internal.hpp
@@ -32,7 +32,7 @@ int GlyphCount(const std::string& input);
 
 // Properties from:
 // https://www.unicode.org/Public/UCD/latest/ucd/auxiliary/WordBreakProperty.txt
-enum class WordBreakProperty {
+enum class WordBreakProperty : int8_t {
   ALetter,
   CR,
   Double_Quote,
-- 
GitLab