ICU4X
International Components for Unicode
Loading...
Searching...
No Matches
ListFormatter.hpp
Go to the documentation of this file.
1#ifndef icu4x_ListFormatter_HPP
2#define icu4x_ListFormatter_HPP
3
4#include "ListFormatter.d.hpp"
5
6#include <stdio.h>
7#include <stdint.h>
8#include <stddef.h>
9#include <stdbool.h>
10#include <memory>
11#include <functional>
12#include <optional>
13#include <cstdlib>
15#include "DataError.hpp"
16#include "DataProvider.hpp"
17#include "ListLength.hpp"
18#include "Locale.hpp"
19
20
21namespace icu4x {
22namespace capi {
23 extern "C" {
24
25 typedef struct icu4x_ListFormatter_create_and_with_length_mv1_result {union {icu4x::capi::ListFormatter* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_ListFormatter_create_and_with_length_mv1_result;
26 icu4x_ListFormatter_create_and_with_length_mv1_result icu4x_ListFormatter_create_and_with_length_mv1(const icu4x::capi::Locale* locale, icu4x::capi::ListLength length);
27
28 typedef struct icu4x_ListFormatter_create_and_with_length_and_provider_mv1_result {union {icu4x::capi::ListFormatter* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_ListFormatter_create_and_with_length_and_provider_mv1_result;
29 icu4x_ListFormatter_create_and_with_length_and_provider_mv1_result icu4x_ListFormatter_create_and_with_length_and_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::ListLength length);
30
31 typedef struct icu4x_ListFormatter_create_or_with_length_mv1_result {union {icu4x::capi::ListFormatter* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_ListFormatter_create_or_with_length_mv1_result;
32 icu4x_ListFormatter_create_or_with_length_mv1_result icu4x_ListFormatter_create_or_with_length_mv1(const icu4x::capi::Locale* locale, icu4x::capi::ListLength length);
33
34 typedef struct icu4x_ListFormatter_create_or_with_length_and_provider_mv1_result {union {icu4x::capi::ListFormatter* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_ListFormatter_create_or_with_length_and_provider_mv1_result;
35 icu4x_ListFormatter_create_or_with_length_and_provider_mv1_result icu4x_ListFormatter_create_or_with_length_and_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::ListLength length);
36
37 typedef struct icu4x_ListFormatter_create_unit_with_length_mv1_result {union {icu4x::capi::ListFormatter* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_ListFormatter_create_unit_with_length_mv1_result;
38 icu4x_ListFormatter_create_unit_with_length_mv1_result icu4x_ListFormatter_create_unit_with_length_mv1(const icu4x::capi::Locale* locale, icu4x::capi::ListLength length);
39
40 typedef struct icu4x_ListFormatter_create_unit_with_length_and_provider_mv1_result {union {icu4x::capi::ListFormatter* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_ListFormatter_create_unit_with_length_and_provider_mv1_result;
41 icu4x_ListFormatter_create_unit_with_length_and_provider_mv1_result icu4x_ListFormatter_create_unit_with_length_and_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::ListLength length);
42
43 void icu4x_ListFormatter_format_utf8_mv1(const icu4x::capi::ListFormatter* self, diplomat::capi::DiplomatStringsView list, diplomat::capi::DiplomatWrite* write);
44
45 void icu4x_ListFormatter_format_utf16_mv1(const icu4x::capi::ListFormatter* self, diplomat::capi::DiplomatStrings16View list, diplomat::capi::DiplomatWrite* write);
46
47 void icu4x_ListFormatter_destroy_mv1(ListFormatter* self);
48
49 } // extern "C"
50} // namespace capi
51} // namespace
52
54 auto result = icu4x::capi::icu4x_ListFormatter_create_and_with_length_mv1(locale.AsFFI(),
55 length.AsFFI());
56 return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::ListFormatter>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::ListFormatter>>(std::unique_ptr<icu4x::ListFormatter>(icu4x::ListFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::ListFormatter>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
57}
58
60 auto result = icu4x::capi::icu4x_ListFormatter_create_and_with_length_and_provider_mv1(provider.AsFFI(),
61 locale.AsFFI(),
62 length.AsFFI());
63 return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::ListFormatter>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::ListFormatter>>(std::unique_ptr<icu4x::ListFormatter>(icu4x::ListFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::ListFormatter>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
64}
65
67 auto result = icu4x::capi::icu4x_ListFormatter_create_or_with_length_mv1(locale.AsFFI(),
68 length.AsFFI());
69 return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::ListFormatter>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::ListFormatter>>(std::unique_ptr<icu4x::ListFormatter>(icu4x::ListFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::ListFormatter>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
70}
71
73 auto result = icu4x::capi::icu4x_ListFormatter_create_or_with_length_and_provider_mv1(provider.AsFFI(),
74 locale.AsFFI(),
75 length.AsFFI());
76 return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::ListFormatter>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::ListFormatter>>(std::unique_ptr<icu4x::ListFormatter>(icu4x::ListFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::ListFormatter>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
77}
78
80 auto result = icu4x::capi::icu4x_ListFormatter_create_unit_with_length_mv1(locale.AsFFI(),
81 length.AsFFI());
82 return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::ListFormatter>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::ListFormatter>>(std::unique_ptr<icu4x::ListFormatter>(icu4x::ListFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::ListFormatter>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
83}
84
86 auto result = icu4x::capi::icu4x_ListFormatter_create_unit_with_length_and_provider_mv1(provider.AsFFI(),
87 locale.AsFFI(),
88 length.AsFFI());
89 return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::ListFormatter>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::ListFormatter>>(std::unique_ptr<icu4x::ListFormatter>(icu4x::ListFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::ListFormatter>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
90}
91
93 std::string output;
94 diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output);
95 icu4x::capi::icu4x_ListFormatter_format_utf8_mv1(this->AsFFI(),
96 {reinterpret_cast<const diplomat::capi::DiplomatStringView*>(list.data()), list.size()},
97 &write);
98 return output;
99}
100
102 std::string output;
103 diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output);
104 icu4x::capi::icu4x_ListFormatter_format_utf16_mv1(this->AsFFI(),
105 {reinterpret_cast<const diplomat::capi::DiplomatStringView*>(list.data()), list.size()},
106 &write);
107 return output;
108}
109
110inline const icu4x::capi::ListFormatter* icu4x::ListFormatter::AsFFI() const {
111 return reinterpret_cast<const icu4x::capi::ListFormatter*>(this);
112}
113
114inline icu4x::capi::ListFormatter* icu4x::ListFormatter::AsFFI() {
115 return reinterpret_cast<icu4x::capi::ListFormatter*>(this);
116}
117
118inline const icu4x::ListFormatter* icu4x::ListFormatter::FromFFI(const icu4x::capi::ListFormatter* ptr) {
119 return reinterpret_cast<const icu4x::ListFormatter*>(ptr);
120}
121
122inline icu4x::ListFormatter* icu4x::ListFormatter::FromFFI(icu4x::capi::ListFormatter* ptr) {
123 return reinterpret_cast<icu4x::ListFormatter*>(ptr);
124}
125
126inline void icu4x::ListFormatter::operator delete(void* ptr) {
127 icu4x::capi::icu4x_ListFormatter_destroy_mv1(reinterpret_cast<icu4x::capi::ListFormatter*>(ptr));
128}
129
130
131#endif // icu4x_ListFormatter_HPP
Definition diplomat_runtime.hpp:140
Definition diplomat_runtime.hpp:223
constexpr T * data() const noexcept
Definition diplomat_runtime.hpp:234
constexpr size_t size() const noexcept
Definition diplomat_runtime.hpp:237
Definition DataError.d.hpp:37
Definition DataProvider.d.hpp:40
static diplomat::result< std::unique_ptr< icu4x::ListFormatter >, icu4x::DataError > create_or_with_length(const icu4x::Locale &locale, icu4x::ListLength length)
Definition ListFormatter.hpp:66
std::string format16(diplomat::span< const std::u16string_view > list) const
Definition ListFormatter.hpp:101
std::string format(diplomat::span< const std::string_view > list) const
Definition ListFormatter.hpp:92
static diplomat::result< std::unique_ptr< icu4x::ListFormatter >, icu4x::DataError > create_and_with_length_and_provider(const icu4x::DataProvider &provider, const icu4x::Locale &locale, icu4x::ListLength length)
Definition ListFormatter.hpp:59
static diplomat::result< std::unique_ptr< icu4x::ListFormatter >, icu4x::DataError > create_unit_with_length_and_provider(const icu4x::DataProvider &provider, const icu4x::Locale &locale, icu4x::ListLength length)
Definition ListFormatter.hpp:85
static diplomat::result< std::unique_ptr< icu4x::ListFormatter >, icu4x::DataError > create_and_with_length(const icu4x::Locale &locale, icu4x::ListLength length)
Definition ListFormatter.hpp:53
static diplomat::result< std::unique_ptr< icu4x::ListFormatter >, icu4x::DataError > create_or_with_length_and_provider(const icu4x::DataProvider &provider, const icu4x::Locale &locale, icu4x::ListLength length)
Definition ListFormatter.hpp:72
static diplomat::result< std::unique_ptr< icu4x::ListFormatter >, icu4x::DataError > create_unit_with_length(const icu4x::Locale &locale, icu4x::ListLength length)
Definition ListFormatter.hpp:79
Definition ListLength.d.hpp:31
Definition Locale.d.hpp:33
Definition Bidi.d.hpp:14
Definition diplomat_runtime.hpp:125
Definition diplomat_runtime.hpp:111