IanaParserExtended.d.hpp (3571B)
1 #ifndef icu4x_IanaParserExtended_D_HPP 2 #define icu4x_IanaParserExtended_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 namespace capi { struct DataProvider; } 16 class DataProvider; 17 namespace capi { struct IanaParserExtended; } 18 class IanaParserExtended; 19 namespace capi { struct TimeZoneAndCanonicalAndNormalizedIterator; } 20 class TimeZoneAndCanonicalAndNormalizedIterator; 21 namespace capi { struct TimeZoneAndCanonicalIterator; } 22 class TimeZoneAndCanonicalIterator; 23 struct TimeZoneAndCanonicalAndNormalized; 24 class DataError; 25 } 26 27 28 namespace icu4x { 29 namespace capi { 30 struct IanaParserExtended; 31 } // namespace capi 32 } // namespace 33 34 namespace icu4x { 35 /** 36 * A mapper between IANA time zone identifiers and BCP-47 time zone identifiers. 37 * 38 * This mapper supports two-way mapping, but it is optimized for the case of IANA to BCP-47. 39 * It also supports normalizing and canonicalizing the IANA strings. 40 * 41 * See the [Rust documentation for `IanaParserExtended`](https://docs.rs/icu/latest/icu/time/zone/iana/struct.IanaParserExtended.html) for more information. 42 */ 43 class IanaParserExtended { 44 public: 45 46 /** 47 * Create a new [`IanaParserExtended`] using compiled data 48 * 49 * See the [Rust documentation for `new`](https://docs.rs/icu/latest/icu/time/zone/iana/struct.IanaParserExtended.html#method.new) for more information. 50 */ 51 inline static std::unique_ptr<icu4x::IanaParserExtended> create(); 52 53 /** 54 * Create a new [`IanaParserExtended`] using a particular data source 55 * 56 * See the [Rust documentation for `new`](https://docs.rs/icu/latest/icu/time/zone/iana/struct.IanaParserExtended.html#method.new) for more information. 57 */ 58 inline static diplomat::result<std::unique_ptr<icu4x::IanaParserExtended>, icu4x::DataError> create_with_provider(const icu4x::DataProvider& provider); 59 60 /** 61 * See the [Rust documentation for `parse`](https://docs.rs/icu/latest/icu/time/zone/iana/struct.IanaParserExtendedBorrowed.html#method.parse) for more information. 62 */ 63 inline icu4x::TimeZoneAndCanonicalAndNormalized parse(std::string_view value) const; 64 65 /** 66 * See the [Rust documentation for `iter`](https://docs.rs/icu/latest/icu/time/zone/iana/struct.IanaParserExtendedBorrowed.html#method.iter) for more information. 67 */ 68 inline std::unique_ptr<icu4x::TimeZoneAndCanonicalIterator> iter() const; 69 70 /** 71 * See the [Rust documentation for `iter_all`](https://docs.rs/icu/latest/icu/time/zone/iana/struct.IanaParserExtendedBorrowed.html#method.iter_all) for more information. 72 */ 73 inline std::unique_ptr<icu4x::TimeZoneAndCanonicalAndNormalizedIterator> iter_all() const; 74 75 inline const icu4x::capi::IanaParserExtended* AsFFI() const; 76 inline icu4x::capi::IanaParserExtended* AsFFI(); 77 inline static const icu4x::IanaParserExtended* FromFFI(const icu4x::capi::IanaParserExtended* ptr); 78 inline static icu4x::IanaParserExtended* FromFFI(icu4x::capi::IanaParserExtended* ptr); 79 inline static void operator delete(void* ptr); 80 private: 81 IanaParserExtended() = delete; 82 IanaParserExtended(const icu4x::IanaParserExtended&) = delete; 83 IanaParserExtended(icu4x::IanaParserExtended&&) noexcept = delete; 84 IanaParserExtended operator=(const icu4x::IanaParserExtended&) = delete; 85 IanaParserExtended operator=(icu4x::IanaParserExtended&&) noexcept = delete; 86 static void operator delete[](void*, size_t) = delete; 87 }; 88 89 } // namespace 90 #endif // icu4x_IanaParserExtended_D_HPP