BidiParagraph.hpp (3636B)
1 #ifndef icu4x_BidiParagraph_HPP 2 #define icu4x_BidiParagraph_HPP 3 4 #include "BidiParagraph.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 "../diplomat_runtime.hpp" 15 #include "BidiDirection.hpp" 16 17 18 namespace icu4x { 19 namespace capi { 20 extern "C" { 21 22 bool icu4x_BidiParagraph_set_paragraph_in_text_mv1(icu4x::capi::BidiParagraph* self, size_t n); 23 24 icu4x::capi::BidiDirection icu4x_BidiParagraph_direction_mv1(const icu4x::capi::BidiParagraph* self); 25 26 size_t icu4x_BidiParagraph_size_mv1(const icu4x::capi::BidiParagraph* self); 27 28 size_t icu4x_BidiParagraph_range_start_mv1(const icu4x::capi::BidiParagraph* self); 29 30 size_t icu4x_BidiParagraph_range_end_mv1(const icu4x::capi::BidiParagraph* self); 31 32 typedef struct icu4x_BidiParagraph_reorder_line_mv1_result { bool is_ok;} icu4x_BidiParagraph_reorder_line_mv1_result; 33 icu4x_BidiParagraph_reorder_line_mv1_result icu4x_BidiParagraph_reorder_line_mv1(const icu4x::capi::BidiParagraph* self, size_t range_start, size_t range_end, diplomat::capi::DiplomatWrite* write); 34 35 uint8_t icu4x_BidiParagraph_level_at_mv1(const icu4x::capi::BidiParagraph* self, size_t pos); 36 37 void icu4x_BidiParagraph_destroy_mv1(BidiParagraph* self); 38 39 } // extern "C" 40 } // namespace capi 41 } // namespace 42 43 inline bool icu4x::BidiParagraph::set_paragraph_in_text(size_t n) { 44 auto result = icu4x::capi::icu4x_BidiParagraph_set_paragraph_in_text_mv1(this->AsFFI(), 45 n); 46 return result; 47 } 48 49 inline icu4x::BidiDirection icu4x::BidiParagraph::direction() const { 50 auto result = icu4x::capi::icu4x_BidiParagraph_direction_mv1(this->AsFFI()); 51 return icu4x::BidiDirection::FromFFI(result); 52 } 53 54 inline size_t icu4x::BidiParagraph::size() const { 55 auto result = icu4x::capi::icu4x_BidiParagraph_size_mv1(this->AsFFI()); 56 return result; 57 } 58 59 inline size_t icu4x::BidiParagraph::range_start() const { 60 auto result = icu4x::capi::icu4x_BidiParagraph_range_start_mv1(this->AsFFI()); 61 return result; 62 } 63 64 inline size_t icu4x::BidiParagraph::range_end() const { 65 auto result = icu4x::capi::icu4x_BidiParagraph_range_end_mv1(this->AsFFI()); 66 return result; 67 } 68 69 inline std::optional<std::string> icu4x::BidiParagraph::reorder_line(size_t range_start, size_t range_end) const { 70 std::string output; 71 diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); 72 auto result = icu4x::capi::icu4x_BidiParagraph_reorder_line_mv1(this->AsFFI(), 73 range_start, 74 range_end, 75 &write); 76 return result.is_ok ? std::optional<std::string>(std::move(output)) : std::nullopt; 77 } 78 79 inline uint8_t icu4x::BidiParagraph::level_at(size_t pos) const { 80 auto result = icu4x::capi::icu4x_BidiParagraph_level_at_mv1(this->AsFFI(), 81 pos); 82 return result; 83 } 84 85 inline const icu4x::capi::BidiParagraph* icu4x::BidiParagraph::AsFFI() const { 86 return reinterpret_cast<const icu4x::capi::BidiParagraph*>(this); 87 } 88 89 inline icu4x::capi::BidiParagraph* icu4x::BidiParagraph::AsFFI() { 90 return reinterpret_cast<icu4x::capi::BidiParagraph*>(this); 91 } 92 93 inline const icu4x::BidiParagraph* icu4x::BidiParagraph::FromFFI(const icu4x::capi::BidiParagraph* ptr) { 94 return reinterpret_cast<const icu4x::BidiParagraph*>(ptr); 95 } 96 97 inline icu4x::BidiParagraph* icu4x::BidiParagraph::FromFFI(icu4x::capi::BidiParagraph* ptr) { 98 return reinterpret_cast<icu4x::BidiParagraph*>(ptr); 99 } 100 101 inline void icu4x::BidiParagraph::operator delete(void* ptr) { 102 icu4x::capi::icu4x_BidiParagraph_destroy_mv1(reinterpret_cast<icu4x::capi::BidiParagraph*>(ptr)); 103 } 104 105 106 #endif // icu4x_BidiParagraph_HPP