ICU4X
International Components for Unicode
Loading...
Searching...
No Matches
ICU4XMeasureUnitParser.hpp
Go to the documentation of this file.
1#ifndef ICU4XMeasureUnitParser_HPP
2#define ICU4XMeasureUnitParser_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 "ICU4XMeasureUnitParser.h"
13
15#include "ICU4XError.hpp"
16
20struct ICU4XMeasureUnitParserDeleter {
21 void operator()(capi::ICU4XMeasureUnitParser* l) const noexcept {
22 capi::ICU4XMeasureUnitParser_destroy(l);
23 }
24};
25
33 public:
34
41 diplomat::result<ICU4XMeasureUnit, ICU4XError> parse(const std::string_view unit_id) const;
42 inline const capi::ICU4XMeasureUnitParser* AsFFI() const { return this->inner.get(); }
43 inline capi::ICU4XMeasureUnitParser* AsFFIMut() { return this->inner.get(); }
44 inline explicit ICU4XMeasureUnitParser(capi::ICU4XMeasureUnitParser* i) : inner(i) {}
47 ICU4XMeasureUnitParser& operator=(ICU4XMeasureUnitParser&& other) noexcept = default;
48 private:
49 std::unique_ptr<capi::ICU4XMeasureUnitParser, ICU4XMeasureUnitParserDeleter> inner;
50};
51
52#include "ICU4XMeasureUnit.hpp"
53
55 auto diplomat_result_raw_out_value = capi::ICU4XMeasureUnitParser_parse(this->inner.get(), unit_id.data(), unit_id.size());
56 diplomat::result<ICU4XMeasureUnit, ICU4XError> diplomat_result_out_value;
57 if (diplomat_result_raw_out_value.is_ok) {
58 diplomat_result_out_value = diplomat::Ok<ICU4XMeasureUnit>(ICU4XMeasureUnit(diplomat_result_raw_out_value.ok));
59 } else {
60 diplomat_result_out_value = diplomat::Err<ICU4XError>(static_cast<ICU4XError>(diplomat_result_raw_out_value.err));
61 }
62 return diplomat_result_out_value;
63}
64#endif
ICU4XError
Definition ICU4XError.hpp:23
ICU4XMeasureUnitParser(capi::ICU4XMeasureUnitParser *i)
Definition ICU4XMeasureUnitParser.hpp:44
diplomat::result< ICU4XMeasureUnit, ICU4XError > parse(const std::string_view unit_id) const
Definition ICU4XMeasureUnitParser.hpp:54
ICU4XMeasureUnitParser()=default
ICU4XMeasureUnitParser(ICU4XMeasureUnitParser &&) noexcept=default
Definition ICU4XMeasureUnit.hpp:32
Definition diplomat_runtime.hpp:84
Definition diplomat_runtime.hpp:69
Definition diplomat_runtime.hpp:55