diff options
Diffstat (limited to 'intl/icu_capi/cpp/include/CodePointRangeIteratorResult.hpp')
-rw-r--r-- | intl/icu_capi/cpp/include/CodePointRangeIteratorResult.hpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/intl/icu_capi/cpp/include/CodePointRangeIteratorResult.hpp b/intl/icu_capi/cpp/include/CodePointRangeIteratorResult.hpp new file mode 100644 index 0000000000..086ddfce08 --- /dev/null +++ b/intl/icu_capi/cpp/include/CodePointRangeIteratorResult.hpp @@ -0,0 +1,33 @@ +#ifndef CodePointRangeIteratorResult_HPP +#define CodePointRangeIteratorResult_HPP +#include <stdint.h> +#include <stddef.h> +#include <stdbool.h> +#include <algorithm> +#include <memory> +#include <variant> +#include <optional> +#include "diplomat_runtime.hpp" + +#include "CodePointRangeIteratorResult.h" + + + +/** + * Result of a single iteration of [`CodePointRangeIterator`]. + * Logically can be considered to be an `Option<RangeInclusive<u32>>`, + * + * `start` and `end` represent an inclusive range of code points [start, end], + * and `done` will be true if the iterator has already finished. The last contentful + * iteration will NOT produce a range done=true, in other words `start` and `end` are useful + * values if and only if `done=false`. + */ +struct CodePointRangeIteratorResult { + public: + uint32_t start; + uint32_t end; + bool done; +}; + + +#endif |