TimeZoneIterator.hpp (1693B)
1 #ifndef icu4x_TimeZoneIterator_HPP 2 #define icu4x_TimeZoneIterator_HPP 3 4 #include "TimeZoneIterator.d.hpp" 5 6 #include <stdio.h> 7 #include <stdint.h> 8 #include <stddef.h> 9 #include <stdbool.h> 10 #include <memory> 11 #include <functional> 12 #include <optional> 13 #include <cstdlib> 14 #include "../diplomat_runtime.hpp" 15 #include "TimeZone.hpp" 16 17 18 namespace icu4x { 19 namespace capi { 20 extern "C" { 21 22 icu4x::capi::TimeZone* icu4x_TimeZoneIterator_next_mv1(icu4x::capi::TimeZoneIterator* self); 23 24 void icu4x_TimeZoneIterator_destroy_mv1(TimeZoneIterator* self); 25 26 } // extern "C" 27 } // namespace capi 28 } // namespace 29 30 inline std::unique_ptr<icu4x::TimeZone> icu4x::TimeZoneIterator::next() { 31 auto result = icu4x::capi::icu4x_TimeZoneIterator_next_mv1(this->AsFFI()); 32 return std::unique_ptr<icu4x::TimeZone>(icu4x::TimeZone::FromFFI(result)); 33 } 34 35 inline const icu4x::capi::TimeZoneIterator* icu4x::TimeZoneIterator::AsFFI() const { 36 return reinterpret_cast<const icu4x::capi::TimeZoneIterator*>(this); 37 } 38 39 inline icu4x::capi::TimeZoneIterator* icu4x::TimeZoneIterator::AsFFI() { 40 return reinterpret_cast<icu4x::capi::TimeZoneIterator*>(this); 41 } 42 43 inline const icu4x::TimeZoneIterator* icu4x::TimeZoneIterator::FromFFI(const icu4x::capi::TimeZoneIterator* ptr) { 44 return reinterpret_cast<const icu4x::TimeZoneIterator*>(ptr); 45 } 46 47 inline icu4x::TimeZoneIterator* icu4x::TimeZoneIterator::FromFFI(icu4x::capi::TimeZoneIterator* ptr) { 48 return reinterpret_cast<icu4x::TimeZoneIterator*>(ptr); 49 } 50 51 inline void icu4x::TimeZoneIterator::operator delete(void* ptr) { 52 icu4x::capi::icu4x_TimeZoneIterator_destroy_mv1(reinterpret_cast<icu4x::capi::TimeZoneIterator*>(ptr)); 53 } 54 55 56 #endif // icu4x_TimeZoneIterator_HPP