1 #ifndef icu4x_TimeZoneAndCanonicalIterator_D_HPP 2 #define icu4x_TimeZoneAndCanonicalIterator_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 TimeZoneAndCanonical; 15 } 16 17 18 namespace icu4x { 19 namespace capi { 20 struct TimeZoneAndCanonicalIterator; 21 } // namespace capi 22 } // namespace 23 24 namespace icu4x { 25 class TimeZoneAndCanonicalIterator { 26 public: 27 28 inline std::optional<icu4x::TimeZoneAndCanonical> next(); 29 30 inline const icu4x::capi::TimeZoneAndCanonicalIterator* AsFFI() const; 31 inline icu4x::capi::TimeZoneAndCanonicalIterator* AsFFI(); 32 inline static const icu4x::TimeZoneAndCanonicalIterator* FromFFI(const icu4x::capi::TimeZoneAndCanonicalIterator* ptr); 33 inline static icu4x::TimeZoneAndCanonicalIterator* FromFFI(icu4x::capi::TimeZoneAndCanonicalIterator* ptr); 34 inline static void operator delete(void* ptr); 35 private: 36 TimeZoneAndCanonicalIterator() = delete; 37 TimeZoneAndCanonicalIterator(const icu4x::TimeZoneAndCanonicalIterator&) = delete; 38 TimeZoneAndCanonicalIterator(icu4x::TimeZoneAndCanonicalIterator&&) noexcept = delete; 39 TimeZoneAndCanonicalIterator operator=(const icu4x::TimeZoneAndCanonicalIterator&) = delete; 40 TimeZoneAndCanonicalIterator operator=(icu4x::TimeZoneAndCanonicalIterator&&) noexcept = delete; 41 static void operator delete[](void*, size_t) = delete; 42 }; 43 44 } // namespace 45 #endif // icu4x_TimeZoneAndCanonicalIterator_D_HPP 46