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 "../diplomat_runtime.hpp" 12 13 namespace icu4x { 14 struct CodePointRangeIteratorResult; 15 } 16 17 18 namespace icu4x { 19 namespace capi { 20 struct CodePointRangeIterator; 21 } // namespace capi 22 } // namespace 23 24 namespace icu4x { 25 class CodePointRangeIterator { 26 public: 27 28 inline icu4x::CodePointRangeIteratorResult next(); 29 30 inline const icu4x::capi::CodePointRangeIterator* AsFFI() const; 31 inline icu4x::capi::CodePointRangeIterator* AsFFI(); 32 inline static const icu4x::CodePointRangeIterator* FromFFI(const icu4x::capi::CodePointRangeIterator* ptr); 33 inline static icu4x::CodePointRangeIterator* FromFFI(icu4x::capi::CodePointRangeIterator* ptr); 34 inline static void operator delete(void* ptr); 35 private: 36 CodePointRangeIterator() = delete; 37 CodePointRangeIterator(const icu4x::CodePointRangeIterator&) = delete; 38 CodePointRangeIterator(icu4x::CodePointRangeIterator&&) noexcept = delete; 39 CodePointRangeIterator operator=(const icu4x::CodePointRangeIterator&) = delete; 40 CodePointRangeIterator operator=(icu4x::CodePointRangeIterator&&) noexcept = delete; 41 static void operator delete[](void*, size_t) = delete; 42 }; 43 44 } // namespace 45 #endif // icu4x_CodePointRangeIterator_D_HPP 46