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