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>
14#include "DataError.hpp"
15#include "DataProvider.hpp"
16#include "ListLength.hpp"
17#include "Locale.hpp"
18#include "diplomat_runtime.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, icu4x::diplomat::capi::DiplomatStringsView list, icu4x::diplomat::capi::DiplomatWrite* write);
44
45 void icu4x_ListFormatter_format_utf16_mv1(const icu4x::capi::ListFormatter* self, icu4x::diplomat::capi::DiplomatStrings16View list, icu4x::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());
57}
58
60 auto result = icu4x::capi::icu4x_ListFormatter_create_and_with_length_and_provider_mv1(provider.AsFFI(),
61 locale.AsFFI(),
62 length.AsFFI());
64}
65
67 auto result = icu4x::capi::icu4x_ListFormatter_create_or_with_length_mv1(locale.AsFFI(),
68 length.AsFFI());
70}
71
73 auto result = icu4x::capi::icu4x_ListFormatter_create_or_with_length_and_provider_mv1(provider.AsFFI(),
74 locale.AsFFI(),
75 length.AsFFI());
77}
78
80 auto result = icu4x::capi::icu4x_ListFormatter_create_unit_with_length_mv1(locale.AsFFI(),
81 length.AsFFI());
83}
84
86 auto result = icu4x::capi::icu4x_ListFormatter_create_unit_with_length_and_provider_mv1(provider.AsFFI(),
87 locale.AsFFI(),
88 length.AsFFI());
90}
91
93 std::string output;
94 icu4x::diplomat::capi::DiplomatWrite write = icu4x::diplomat::WriteFromString(output);
95 icu4x::capi::icu4x_ListFormatter_format_utf8_mv1(this->AsFFI(),
96 {reinterpret_cast<const icu4x::diplomat::capi::DiplomatStringView*>(list.data()), list.size()},
97 &write);
98 return output;
99}
100template<typename W>
102 icu4x::diplomat::capi::DiplomatWrite write = icu4x::diplomat::WriteTrait<W>::Construct(writeable);
103 icu4x::capi::icu4x_ListFormatter_format_utf8_mv1(this->AsFFI(),
104 {reinterpret_cast<const icu4x::diplomat::capi::DiplomatStringView*>(list.data()), list.size()},
105 &write);
106}
107
109 std::string output;
110 icu4x::diplomat::capi::DiplomatWrite write = icu4x::diplomat::WriteFromString(output);
111 icu4x::capi::icu4x_ListFormatter_format_utf16_mv1(this->AsFFI(),
112 {reinterpret_cast<const icu4x::diplomat::capi::DiplomatStringView*>(list.data()), list.size()},
113 &write);
114 return output;
115}
116template<typename W>
118 icu4x::diplomat::capi::DiplomatWrite write = icu4x::diplomat::WriteTrait<W>::Construct(writeable);
119 icu4x::capi::icu4x_ListFormatter_format_utf16_mv1(this->AsFFI(),
120 {reinterpret_cast<const icu4x::diplomat::capi::DiplomatStringView*>(list.data()), list.size()},
121 &write);
122}
123
124inline const icu4x::capi::ListFormatter* icu4x::ListFormatter::AsFFI() const {
125 return reinterpret_cast<const icu4x::capi::ListFormatter*>(this);
126}
127
128inline icu4x::capi::ListFormatter* icu4x::ListFormatter::AsFFI() {
129 return reinterpret_cast<icu4x::capi::ListFormatter*>(this);
130}
131
132inline const icu4x::ListFormatter* icu4x::ListFormatter::FromFFI(const icu4x::capi::ListFormatter* ptr) {
133 return reinterpret_cast<const icu4x::ListFormatter*>(ptr);
134}
135
136inline icu4x::ListFormatter* icu4x::ListFormatter::FromFFI(icu4x::capi::ListFormatter* ptr) {
137 return reinterpret_cast<icu4x::ListFormatter*>(ptr);
138}
139
140inline void icu4x::ListFormatter::operator delete(void* ptr) {
141 icu4x::capi::icu4x_ListFormatter_destroy_mv1(reinterpret_cast<icu4x::capi::ListFormatter*>(ptr));
142}
143
144
145#endif // ICU4X_ListFormatter_HPP
Definition DataError.d.hpp:37
Definition DataProvider.d.hpp:40
void format16_write(icu4x::diplomat::span< const diplomat::u16string_view_for_slice > list, W &writeable_output) const
Definition ListFormatter.hpp:117
static icu4x::diplomat::result< std::unique_ptr< icu4x::ListFormatter >, icu4x::DataError > create_or_with_length(const icu4x::Locale &locale, icu4x::ListLength length)
Definition ListFormatter.hpp:66
static icu4x::diplomat::result< std::unique_ptr< icu4x::ListFormatter >, icu4x::DataError > create_and_with_length(const icu4x::Locale &locale, icu4x::ListLength length)
Definition ListFormatter.hpp:53
std::string format16(icu4x::diplomat::span< const diplomat::u16string_view_for_slice > list) const
Definition ListFormatter.hpp:108
void format_write(icu4x::diplomat::span< const diplomat::string_view_for_slice > list, W &writeable_output) const
Definition ListFormatter.hpp:101
static icu4x::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
std::string format(icu4x::diplomat::span< const diplomat::string_view_for_slice > list) const
Definition ListFormatter.hpp:92
static icu4x::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 icu4x::diplomat::result< std::unique_ptr< icu4x::ListFormatter >, icu4x::DataError > create_unit_with_length(const icu4x::Locale &locale, icu4x::ListLength length)
Definition ListFormatter.hpp:79
static icu4x::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
Definition ListLength.d.hpp:31
Definition Locale.d.hpp:33
Definition diplomat_runtime.hpp:166
Definition diplomat_runtime.hpp:252
constexpr T * data() const noexcept
Definition diplomat_runtime.hpp:263
constexpr size_t size() const noexcept
Definition diplomat_runtime.hpp:266
Definition Bidi.d.hpp:13
Definition diplomat_runtime.hpp:146
Definition diplomat_runtime.hpp:128
Definition diplomat_runtime.hpp:117