MeasureUnitParser.d.hpp (2780B)
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 <cstdlib> 12 #include "../diplomat_runtime.hpp" 13 14 namespace icu4x { 15 namespace capi { struct DataProvider; } 16 class DataProvider; 17 namespace capi { struct MeasureUnit; } 18 class MeasureUnit; 19 namespace capi { struct MeasureUnitParser; } 20 class MeasureUnitParser; 21 class DataError; 22 } 23 24 25 namespace icu4x { 26 namespace capi { 27 struct MeasureUnitParser; 28 } // namespace capi 29 } // namespace 30 31 namespace icu4x { 32 /** 33 * An ICU4X Measure Unit Parser object, capable of parsing the CLDR unit identifier (e.g. `meter-per-square-second`) and get the [`MeasureUnit`]. 34 * 35 * See the [Rust documentation for `MeasureUnitParser`](https://docs.rs/icu/latest/icu/experimental/measure/parser/struct.MeasureUnitParser.html) for more information. 36 */ 37 class MeasureUnitParser { 38 public: 39 40 /** 41 * Construct a new [`MeasureUnitParser`] instance using compiled data. 42 * 43 * See the [Rust documentation for `new`](https://docs.rs/icu/latest/icu/experimental/measure/parser/struct.MeasureUnitParser.html#method.new) for more information. 44 */ 45 inline static std::unique_ptr<icu4x::MeasureUnitParser> create(); 46 47 /** 48 * Construct a new [`MeasureUnitParser`] instance using a particular data source. 49 * 50 * See the [Rust documentation for `new`](https://docs.rs/icu/latest/icu/experimental/measure/parser/struct.MeasureUnitParser.html#method.new) for more information. 51 */ 52 inline static diplomat::result<std::unique_ptr<icu4x::MeasureUnitParser>, icu4x::DataError> create_with_provider(const icu4x::DataProvider& provider); 53 54 /** 55 * See the [Rust documentation for `parse`](https://docs.rs/icu/latest/icu/experimental/measure/parser/struct.MeasureUnitParser.html#method.parse) for more information. 56 */ 57 inline std::unique_ptr<icu4x::MeasureUnit> parse(std::string_view unit_id) const; 58 59 inline const icu4x::capi::MeasureUnitParser* AsFFI() const; 60 inline icu4x::capi::MeasureUnitParser* AsFFI(); 61 inline static const icu4x::MeasureUnitParser* FromFFI(const icu4x::capi::MeasureUnitParser* ptr); 62 inline static icu4x::MeasureUnitParser* FromFFI(icu4x::capi::MeasureUnitParser* ptr); 63 inline static void operator delete(void* ptr); 64 private: 65 MeasureUnitParser() = delete; 66 MeasureUnitParser(const icu4x::MeasureUnitParser&) = delete; 67 MeasureUnitParser(icu4x::MeasureUnitParser&&) noexcept = delete; 68 MeasureUnitParser operator=(const icu4x::MeasureUnitParser&) = delete; 69 MeasureUnitParser operator=(icu4x::MeasureUnitParser&&) noexcept = delete; 70 static void operator delete[](void*, size_t) = delete; 71 }; 72 73 } // namespace 74 #endif // icu4x_MeasureUnitParser_D_HPP