CodePointRangeIterator.d.hpp (1680B)
1 #ifndef icu4x_CodePointRangeIterator_D_HPP 2 #define icu4x_CodePointRangeIterator_D_HPP 3 4 #include <stdio.h> 5 #include <stdint.h> 6 #include <stddef.h> 7 #include <stdbool.h> 8 #include <memory> 9 #include <functional> 10 #include <optional> 11 #include <cstdlib> 12 #include "../diplomat_runtime.hpp" 13 14 namespace icu4x { 15 struct CodePointRangeIteratorResult; 16 } 17 18 19 namespace icu4x { 20 namespace capi { 21 struct CodePointRangeIterator; 22 } // namespace capi 23 } // namespace 24 25 namespace icu4x { 26 /** 27 * An iterator over code point ranges, produced by `CodePointSetData` or 28 * one of the `CodePointMapData` types 29 */ 30 class CodePointRangeIterator { 31 public: 32 33 /** 34 * Advance the iterator by one and return the next range. 35 * 36 * If the iterator is out of items, `done` will be true 37 */ 38 inline icu4x::CodePointRangeIteratorResult next(); 39 40 inline const icu4x::capi::CodePointRangeIterator* AsFFI() const; 41 inline icu4x::capi::CodePointRangeIterator* AsFFI(); 42 inline static const icu4x::CodePointRangeIterator* FromFFI(const icu4x::capi::CodePointRangeIterator* ptr); 43 inline static icu4x::CodePointRangeIterator* FromFFI(icu4x::capi::CodePointRangeIterator* ptr); 44 inline static void operator delete(void* ptr); 45 private: 46 CodePointRangeIterator() = delete; 47 CodePointRangeIterator(const icu4x::CodePointRangeIterator&) = delete; 48 CodePointRangeIterator(icu4x::CodePointRangeIterator&&) noexcept = delete; 49 CodePointRangeIterator operator=(const icu4x::CodePointRangeIterator&) = delete; 50 CodePointRangeIterator operator=(icu4x::CodePointRangeIterator&&) noexcept = delete; 51 static void operator delete[](void*, size_t) = delete; 52 }; 53 54 } // namespace 55 #endif // icu4x_CodePointRangeIterator_D_HPP