ICU4X
International Components for Unicode
Loading...
Searching...
No Matches
ICU4XUnitsConverterFactory.hpp
Go to the documentation of this file.
1#ifndef ICU4XUnitsConverterFactory_HPP
2#define ICU4XUnitsConverterFactory_HPP
3#include <stdint.h>
4#include <stddef.h>
5#include <stdbool.h>
6#include <algorithm>
7#include <memory>
8#include <variant>
9#include <optional>
10#include "diplomat_runtime.hpp"
11
12#include "ICU4XUnitsConverterFactory.h"
13
16#include "ICU4XError.hpp"
20
24struct ICU4XUnitsConverterFactoryDeleter {
25 void operator()(capi::ICU4XUnitsConverterFactory* l) const noexcept {
26 capi::ICU4XUnitsConverterFactory_destroy(l);
27 }
28};
29
38 public:
39
46
54 std::optional<ICU4XUnitsConverter> converter(const ICU4XMeasureUnit& from, const ICU4XMeasureUnit& to) const;
55
64 inline const capi::ICU4XUnitsConverterFactory* AsFFI() const { return this->inner.get(); }
65 inline capi::ICU4XUnitsConverterFactory* AsFFIMut() { return this->inner.get(); }
66 inline explicit ICU4XUnitsConverterFactory(capi::ICU4XUnitsConverterFactory* i) : inner(i) {}
69 ICU4XUnitsConverterFactory& operator=(ICU4XUnitsConverterFactory&& other) noexcept = default;
70 private:
71 std::unique_ptr<capi::ICU4XUnitsConverterFactory, ICU4XUnitsConverterFactoryDeleter> inner;
72};
73
74#include "ICU4XDataProvider.hpp"
75#include "ICU4XMeasureUnit.hpp"
78
80 auto diplomat_result_raw_out_value = capi::ICU4XUnitsConverterFactory_create(provider.AsFFI());
82 if (diplomat_result_raw_out_value.is_ok) {
83 diplomat_result_out_value = diplomat::Ok<ICU4XUnitsConverterFactory>(ICU4XUnitsConverterFactory(diplomat_result_raw_out_value.ok));
84 } else {
85 diplomat_result_out_value = diplomat::Err<ICU4XError>(static_cast<ICU4XError>(diplomat_result_raw_out_value.err));
86 }
87 return diplomat_result_out_value;
88}
89inline std::optional<ICU4XUnitsConverter> ICU4XUnitsConverterFactory::converter(const ICU4XMeasureUnit& from, const ICU4XMeasureUnit& to) const {
90 auto diplomat_optional_raw_out_value = capi::ICU4XUnitsConverterFactory_converter(this->inner.get(), from.AsFFI(), to.AsFFI());
91 std::optional<ICU4XUnitsConverter> diplomat_optional_out_value;
92 if (diplomat_optional_raw_out_value != nullptr) {
93 diplomat_optional_out_value = ICU4XUnitsConverter(diplomat_optional_raw_out_value);
94 } else {
95 diplomat_optional_out_value = std::nullopt;
96 }
97 return diplomat_optional_out_value;
98}
100 return ICU4XMeasureUnitParser(capi::ICU4XUnitsConverterFactory_parser(this->inner.get()));
101}
102#endif
ICU4XError
Definition ICU4XError.hpp:23
Definition ICU4XDataProvider.hpp:32
Definition ICU4XMeasureUnitParser.hpp:32
Definition ICU4XMeasureUnit.hpp:32
Definition ICU4XUnitsConverterFactory.hpp:37
ICU4XUnitsConverterFactory()=default
static diplomat::result< ICU4XUnitsConverterFactory, ICU4XError > create(const ICU4XDataProvider &provider)
Definition ICU4XUnitsConverterFactory.hpp:79
ICU4XMeasureUnitParser parser() const
Definition ICU4XUnitsConverterFactory.hpp:99
ICU4XUnitsConverterFactory(capi::ICU4XUnitsConverterFactory *i)
Definition ICU4XUnitsConverterFactory.hpp:66
std::optional< ICU4XUnitsConverter > converter(const ICU4XMeasureUnit &from, const ICU4XMeasureUnit &to) const
Definition ICU4XUnitsConverterFactory.hpp:89
ICU4XUnitsConverterFactory(ICU4XUnitsConverterFactory &&) noexcept=default
Definition ICU4XUnitsConverter.hpp:32
Definition diplomat_runtime.hpp:84
Definition diplomat_runtime.hpp:69
Definition diplomat_runtime.hpp:55