• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifndef icu4x_PluralOperands_HPP
2 #define icu4x_PluralOperands_HPP
3 
4 #include "PluralOperands.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 "../diplomat_runtime.hpp"
14 #include "Decimal.hpp"
15 #include "FixedDecimalParseError.hpp"
16 
17 
18 namespace icu4x {
19 namespace capi {
20     extern "C" {
21 
22     typedef struct icu4x_PluralOperands_from_string_mv1_result {union {icu4x::capi::PluralOperands* ok; icu4x::capi::FixedDecimalParseError err;}; bool is_ok;} icu4x_PluralOperands_from_string_mv1_result;
23     icu4x_PluralOperands_from_string_mv1_result icu4x_PluralOperands_from_string_mv1(diplomat::capi::DiplomatStringView s);
24 
25     icu4x::capi::PluralOperands* icu4x_PluralOperands_from_int64_mv1(int64_t i);
26 
27     icu4x::capi::PluralOperands* icu4x_PluralOperands_from_fixed_decimal_mv1(const icu4x::capi::Decimal* x);
28 
29 
30     void icu4x_PluralOperands_destroy_mv1(PluralOperands* self);
31 
32     } // extern "C"
33 } // namespace capi
34 } // namespace
35 
from_string(std::string_view s)36 inline diplomat::result<std::unique_ptr<icu4x::PluralOperands>, icu4x::FixedDecimalParseError> icu4x::PluralOperands::from_string(std::string_view s) {
37   auto result = icu4x::capi::icu4x_PluralOperands_from_string_mv1({s.data(), s.size()});
38   return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::PluralOperands>, icu4x::FixedDecimalParseError>(diplomat::Ok<std::unique_ptr<icu4x::PluralOperands>>(std::unique_ptr<icu4x::PluralOperands>(icu4x::PluralOperands::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::PluralOperands>, icu4x::FixedDecimalParseError>(diplomat::Err<icu4x::FixedDecimalParseError>(icu4x::FixedDecimalParseError::FromFFI(result.err)));
39 }
40 
from(int64_t i)41 inline std::unique_ptr<icu4x::PluralOperands> icu4x::PluralOperands::from(int64_t i) {
42   auto result = icu4x::capi::icu4x_PluralOperands_from_int64_mv1(i);
43   return std::unique_ptr<icu4x::PluralOperands>(icu4x::PluralOperands::FromFFI(result));
44 }
45 
from_fixed_decimal(const icu4x::Decimal & x)46 inline std::unique_ptr<icu4x::PluralOperands> icu4x::PluralOperands::from_fixed_decimal(const icu4x::Decimal& x) {
47   auto result = icu4x::capi::icu4x_PluralOperands_from_fixed_decimal_mv1(x.AsFFI());
48   return std::unique_ptr<icu4x::PluralOperands>(icu4x::PluralOperands::FromFFI(result));
49 }
50 
AsFFI() const51 inline const icu4x::capi::PluralOperands* icu4x::PluralOperands::AsFFI() const {
52   return reinterpret_cast<const icu4x::capi::PluralOperands*>(this);
53 }
54 
AsFFI()55 inline icu4x::capi::PluralOperands* icu4x::PluralOperands::AsFFI() {
56   return reinterpret_cast<icu4x::capi::PluralOperands*>(this);
57 }
58 
FromFFI(const icu4x::capi::PluralOperands * ptr)59 inline const icu4x::PluralOperands* icu4x::PluralOperands::FromFFI(const icu4x::capi::PluralOperands* ptr) {
60   return reinterpret_cast<const icu4x::PluralOperands*>(ptr);
61 }
62 
FromFFI(icu4x::capi::PluralOperands * ptr)63 inline icu4x::PluralOperands* icu4x::PluralOperands::FromFFI(icu4x::capi::PluralOperands* ptr) {
64   return reinterpret_cast<icu4x::PluralOperands*>(ptr);
65 }
66 
operator delete(void * ptr)67 inline void icu4x::PluralOperands::operator delete(void* ptr) {
68   icu4x::capi::icu4x_PluralOperands_destroy_mv1(reinterpret_cast<icu4x::capi::PluralOperands*>(ptr));
69 }
70 
71 
72 #endif // icu4x_PluralOperands_HPP
73