ICU4X
International Components for Unicode
Loading...
Searching...
No Matches
DataProvider.hpp
Go to the documentation of this file.
1#ifndef ICU4X_DataProvider_HPP
2#define ICU4X_DataProvider_HPP
3
4#include "DataProvider.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 "LocaleFallbacker.hpp"
16#include "diplomat_runtime.hpp"
17
18
19namespace icu4x {
20namespace capi {
21 extern "C" {
22
23 typedef struct icu4x_DataProvider_from_fs_mv1_result {union {icu4x::capi::DataProvider* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_DataProvider_from_fs_mv1_result;
24 icu4x_DataProvider_from_fs_mv1_result icu4x_DataProvider_from_fs_mv1(icu4x::diplomat::capi::DiplomatStringView path);
25
26 typedef struct icu4x_DataProvider_from_byte_slice_mv1_result {union {icu4x::capi::DataProvider* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_DataProvider_from_byte_slice_mv1_result;
27 icu4x_DataProvider_from_byte_slice_mv1_result icu4x_DataProvider_from_byte_slice_mv1(icu4x::diplomat::capi::DiplomatU8View blob);
28
29 typedef struct icu4x_DataProvider_fork_by_marker_mv1_result {union { icu4x::capi::DataError err;}; bool is_ok;} icu4x_DataProvider_fork_by_marker_mv1_result;
30 icu4x_DataProvider_fork_by_marker_mv1_result icu4x_DataProvider_fork_by_marker_mv1(icu4x::capi::DataProvider* self, icu4x::capi::DataProvider* other);
31
32 typedef struct icu4x_DataProvider_fork_by_locale_mv1_result {union { icu4x::capi::DataError err;}; bool is_ok;} icu4x_DataProvider_fork_by_locale_mv1_result;
33 icu4x_DataProvider_fork_by_locale_mv1_result icu4x_DataProvider_fork_by_locale_mv1(icu4x::capi::DataProvider* self, icu4x::capi::DataProvider* other);
34
35 typedef struct icu4x_DataProvider_enable_locale_fallback_with_mv1_result {union { icu4x::capi::DataError err;}; bool is_ok;} icu4x_DataProvider_enable_locale_fallback_with_mv1_result;
36 icu4x_DataProvider_enable_locale_fallback_with_mv1_result icu4x_DataProvider_enable_locale_fallback_with_mv1(icu4x::capi::DataProvider* self, const icu4x::capi::LocaleFallbacker* fallbacker);
37
38 void icu4x_DataProvider_destroy_mv1(DataProvider* self);
39
40 } // extern "C"
41} // namespace capi
42} // namespace
43
45 auto result = icu4x::capi::icu4x_DataProvider_from_fs_mv1({path.data(), path.size()});
47}
48
50 auto result = icu4x::capi::icu4x_DataProvider_from_byte_slice_mv1({blob.data(), blob.size()});
52}
53
55 auto result = icu4x::capi::icu4x_DataProvider_fork_by_marker_mv1(this->AsFFI(),
56 other.AsFFI());
58}
59
61 auto result = icu4x::capi::icu4x_DataProvider_fork_by_locale_mv1(this->AsFFI(),
62 other.AsFFI());
64}
65
67 auto result = icu4x::capi::icu4x_DataProvider_enable_locale_fallback_with_mv1(this->AsFFI(),
68 fallbacker.AsFFI());
70}
71
72inline const icu4x::capi::DataProvider* icu4x::DataProvider::AsFFI() const {
73 return reinterpret_cast<const icu4x::capi::DataProvider*>(this);
74}
75
76inline icu4x::capi::DataProvider* icu4x::DataProvider::AsFFI() {
77 return reinterpret_cast<icu4x::capi::DataProvider*>(this);
78}
79
80inline const icu4x::DataProvider* icu4x::DataProvider::FromFFI(const icu4x::capi::DataProvider* ptr) {
81 return reinterpret_cast<const icu4x::DataProvider*>(ptr);
82}
83
84inline icu4x::DataProvider* icu4x::DataProvider::FromFFI(icu4x::capi::DataProvider* ptr) {
85 return reinterpret_cast<icu4x::DataProvider*>(ptr);
86}
87
88inline void icu4x::DataProvider::operator delete(void* ptr) {
89 icu4x::capi::icu4x_DataProvider_destroy_mv1(reinterpret_cast<icu4x::capi::DataProvider*>(ptr));
90}
91
92
93#endif // ICU4X_DataProvider_HPP
Definition DataError.d.hpp:37
Definition DataProvider.d.hpp:40
icu4x::diplomat::result< std::monostate, icu4x::DataError > fork_by_locale(icu4x::DataProvider &other)
Definition DataProvider.hpp:60
static icu4x::diplomat::result< std::unique_ptr< icu4x::DataProvider >, icu4x::DataError > from_fs(std::string_view path)
Definition DataProvider.hpp:44
icu4x::diplomat::result< std::monostate, icu4x::DataError > fork_by_marker(icu4x::DataProvider &other)
Definition DataProvider.hpp:54
icu4x::diplomat::result< std::monostate, icu4x::DataError > enable_locale_fallback_with(const icu4x::LocaleFallbacker &fallbacker)
Definition DataProvider.hpp:66
static icu4x::diplomat::result< std::unique_ptr< icu4x::DataProvider >, icu4x::DataError > from_byte_slice(icu4x::diplomat::span< const uint8_t > blob)
Definition DataProvider.hpp:49
Definition LocaleFallbacker.d.hpp:38
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