tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

DateFormatterGregorian.hpp (37990B)


      1 #ifndef icu4x_DateFormatterGregorian_HPP
      2 #define icu4x_DateFormatterGregorian_HPP
      3 
      4 #include "DateFormatterGregorian.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 "DataProvider.hpp"
     16 #include "DateTimeAlignment.hpp"
     17 #include "DateTimeFormatterLoadError.hpp"
     18 #include "DateTimeLength.hpp"
     19 #include "IsoDate.hpp"
     20 #include "Locale.hpp"
     21 #include "YearStyle.hpp"
     22 
     23 
     24 namespace icu4x {
     25 namespace capi {
     26    extern "C" {
     27 
     28    typedef struct icu4x_DateFormatterGregorian_create_d_mv1_result {union {icu4x::capi::DateFormatterGregorian* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateFormatterGregorian_create_d_mv1_result;
     29    icu4x_DateFormatterGregorian_create_d_mv1_result icu4x_DateFormatterGregorian_create_d_mv1(const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::DateTimeAlignment_option alignment);
     30 
     31    typedef struct icu4x_DateFormatterGregorian_create_d_with_provider_mv1_result {union {icu4x::capi::DateFormatterGregorian* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateFormatterGregorian_create_d_with_provider_mv1_result;
     32    icu4x_DateFormatterGregorian_create_d_with_provider_mv1_result icu4x_DateFormatterGregorian_create_d_with_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::DateTimeAlignment_option alignment);
     33 
     34    typedef struct icu4x_DateFormatterGregorian_create_md_mv1_result {union {icu4x::capi::DateFormatterGregorian* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateFormatterGregorian_create_md_mv1_result;
     35    icu4x_DateFormatterGregorian_create_md_mv1_result icu4x_DateFormatterGregorian_create_md_mv1(const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::DateTimeAlignment_option alignment);
     36 
     37    typedef struct icu4x_DateFormatterGregorian_create_md_with_provider_mv1_result {union {icu4x::capi::DateFormatterGregorian* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateFormatterGregorian_create_md_with_provider_mv1_result;
     38    icu4x_DateFormatterGregorian_create_md_with_provider_mv1_result icu4x_DateFormatterGregorian_create_md_with_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::DateTimeAlignment_option alignment);
     39 
     40    typedef struct icu4x_DateFormatterGregorian_create_ymd_mv1_result {union {icu4x::capi::DateFormatterGregorian* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateFormatterGregorian_create_ymd_mv1_result;
     41    icu4x_DateFormatterGregorian_create_ymd_mv1_result icu4x_DateFormatterGregorian_create_ymd_mv1(const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::DateTimeAlignment_option alignment, icu4x::capi::YearStyle_option year_style);
     42 
     43    typedef struct icu4x_DateFormatterGregorian_create_ymd_with_provider_mv1_result {union {icu4x::capi::DateFormatterGregorian* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateFormatterGregorian_create_ymd_with_provider_mv1_result;
     44    icu4x_DateFormatterGregorian_create_ymd_with_provider_mv1_result icu4x_DateFormatterGregorian_create_ymd_with_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::DateTimeAlignment_option alignment, icu4x::capi::YearStyle_option year_style);
     45 
     46    typedef struct icu4x_DateFormatterGregorian_create_de_mv1_result {union {icu4x::capi::DateFormatterGregorian* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateFormatterGregorian_create_de_mv1_result;
     47    icu4x_DateFormatterGregorian_create_de_mv1_result icu4x_DateFormatterGregorian_create_de_mv1(const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::DateTimeAlignment_option alignment);
     48 
     49    typedef struct icu4x_DateFormatterGregorian_create_de_with_provider_mv1_result {union {icu4x::capi::DateFormatterGregorian* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateFormatterGregorian_create_de_with_provider_mv1_result;
     50    icu4x_DateFormatterGregorian_create_de_with_provider_mv1_result icu4x_DateFormatterGregorian_create_de_with_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::DateTimeAlignment_option alignment);
     51 
     52    typedef struct icu4x_DateFormatterGregorian_create_mde_mv1_result {union {icu4x::capi::DateFormatterGregorian* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateFormatterGregorian_create_mde_mv1_result;
     53    icu4x_DateFormatterGregorian_create_mde_mv1_result icu4x_DateFormatterGregorian_create_mde_mv1(const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::DateTimeAlignment_option alignment);
     54 
     55    typedef struct icu4x_DateFormatterGregorian_create_mde_with_provider_mv1_result {union {icu4x::capi::DateFormatterGregorian* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateFormatterGregorian_create_mde_with_provider_mv1_result;
     56    icu4x_DateFormatterGregorian_create_mde_with_provider_mv1_result icu4x_DateFormatterGregorian_create_mde_with_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::DateTimeAlignment_option alignment);
     57 
     58    typedef struct icu4x_DateFormatterGregorian_create_ymde_mv1_result {union {icu4x::capi::DateFormatterGregorian* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateFormatterGregorian_create_ymde_mv1_result;
     59    icu4x_DateFormatterGregorian_create_ymde_mv1_result icu4x_DateFormatterGregorian_create_ymde_mv1(const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::DateTimeAlignment_option alignment, icu4x::capi::YearStyle_option year_style);
     60 
     61    typedef struct icu4x_DateFormatterGregorian_create_ymde_with_provider_mv1_result {union {icu4x::capi::DateFormatterGregorian* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateFormatterGregorian_create_ymde_with_provider_mv1_result;
     62    icu4x_DateFormatterGregorian_create_ymde_with_provider_mv1_result icu4x_DateFormatterGregorian_create_ymde_with_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::DateTimeAlignment_option alignment, icu4x::capi::YearStyle_option year_style);
     63 
     64    typedef struct icu4x_DateFormatterGregorian_create_e_mv1_result {union {icu4x::capi::DateFormatterGregorian* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateFormatterGregorian_create_e_mv1_result;
     65    icu4x_DateFormatterGregorian_create_e_mv1_result icu4x_DateFormatterGregorian_create_e_mv1(const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length);
     66 
     67    typedef struct icu4x_DateFormatterGregorian_create_e_with_provider_mv1_result {union {icu4x::capi::DateFormatterGregorian* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateFormatterGregorian_create_e_with_provider_mv1_result;
     68    icu4x_DateFormatterGregorian_create_e_with_provider_mv1_result icu4x_DateFormatterGregorian_create_e_with_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length);
     69 
     70    typedef struct icu4x_DateFormatterGregorian_create_m_mv1_result {union {icu4x::capi::DateFormatterGregorian* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateFormatterGregorian_create_m_mv1_result;
     71    icu4x_DateFormatterGregorian_create_m_mv1_result icu4x_DateFormatterGregorian_create_m_mv1(const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::DateTimeAlignment_option alignment);
     72 
     73    typedef struct icu4x_DateFormatterGregorian_create_m_with_provider_mv1_result {union {icu4x::capi::DateFormatterGregorian* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateFormatterGregorian_create_m_with_provider_mv1_result;
     74    icu4x_DateFormatterGregorian_create_m_with_provider_mv1_result icu4x_DateFormatterGregorian_create_m_with_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::DateTimeAlignment_option alignment);
     75 
     76    typedef struct icu4x_DateFormatterGregorian_create_ym_mv1_result {union {icu4x::capi::DateFormatterGregorian* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateFormatterGregorian_create_ym_mv1_result;
     77    icu4x_DateFormatterGregorian_create_ym_mv1_result icu4x_DateFormatterGregorian_create_ym_mv1(const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::DateTimeAlignment_option alignment, icu4x::capi::YearStyle_option year_style);
     78 
     79    typedef struct icu4x_DateFormatterGregorian_create_ym_with_provider_mv1_result {union {icu4x::capi::DateFormatterGregorian* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateFormatterGregorian_create_ym_with_provider_mv1_result;
     80    icu4x_DateFormatterGregorian_create_ym_with_provider_mv1_result icu4x_DateFormatterGregorian_create_ym_with_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::DateTimeAlignment_option alignment, icu4x::capi::YearStyle_option year_style);
     81 
     82    typedef struct icu4x_DateFormatterGregorian_create_y_mv1_result {union {icu4x::capi::DateFormatterGregorian* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateFormatterGregorian_create_y_mv1_result;
     83    icu4x_DateFormatterGregorian_create_y_mv1_result icu4x_DateFormatterGregorian_create_y_mv1(const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::DateTimeAlignment_option alignment, icu4x::capi::YearStyle_option year_style);
     84 
     85    typedef struct icu4x_DateFormatterGregorian_create_y_with_provider_mv1_result {union {icu4x::capi::DateFormatterGregorian* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateFormatterGregorian_create_y_with_provider_mv1_result;
     86    icu4x_DateFormatterGregorian_create_y_with_provider_mv1_result icu4x_DateFormatterGregorian_create_y_with_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::DateTimeAlignment_option alignment, icu4x::capi::YearStyle_option year_style);
     87 
     88    void icu4x_DateFormatterGregorian_format_iso_mv1(const icu4x::capi::DateFormatterGregorian* self, const icu4x::capi::IsoDate* date, diplomat::capi::DiplomatWrite* write);
     89 
     90    void icu4x_DateFormatterGregorian_destroy_mv1(DateFormatterGregorian* self);
     91 
     92    } // extern "C"
     93 } // namespace capi
     94 } // namespace
     95 
     96 inline diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError> icu4x::DateFormatterGregorian::create_d(const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::DateTimeAlignment> alignment) {
     97  auto result = icu4x::capi::icu4x_DateFormatterGregorian_create_d_mv1(locale.AsFFI(),
     98    length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }),
     99    alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false }));
    100  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateFormatterGregorian>>(std::unique_ptr<icu4x::DateFormatterGregorian>(icu4x::DateFormatterGregorian::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err)));
    101 }
    102 
    103 inline diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError> icu4x::DateFormatterGregorian::create_d_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::DateTimeAlignment> alignment) {
    104  auto result = icu4x::capi::icu4x_DateFormatterGregorian_create_d_with_provider_mv1(provider.AsFFI(),
    105    locale.AsFFI(),
    106    length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }),
    107    alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false }));
    108  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateFormatterGregorian>>(std::unique_ptr<icu4x::DateFormatterGregorian>(icu4x::DateFormatterGregorian::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err)));
    109 }
    110 
    111 inline diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError> icu4x::DateFormatterGregorian::create_md(const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::DateTimeAlignment> alignment) {
    112  auto result = icu4x::capi::icu4x_DateFormatterGregorian_create_md_mv1(locale.AsFFI(),
    113    length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }),
    114    alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false }));
    115  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateFormatterGregorian>>(std::unique_ptr<icu4x::DateFormatterGregorian>(icu4x::DateFormatterGregorian::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err)));
    116 }
    117 
    118 inline diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError> icu4x::DateFormatterGregorian::create_md_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::DateTimeAlignment> alignment) {
    119  auto result = icu4x::capi::icu4x_DateFormatterGregorian_create_md_with_provider_mv1(provider.AsFFI(),
    120    locale.AsFFI(),
    121    length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }),
    122    alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false }));
    123  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateFormatterGregorian>>(std::unique_ptr<icu4x::DateFormatterGregorian>(icu4x::DateFormatterGregorian::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err)));
    124 }
    125 
    126 inline diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError> icu4x::DateFormatterGregorian::create_ymd(const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::DateTimeAlignment> alignment, std::optional<icu4x::YearStyle> year_style) {
    127  auto result = icu4x::capi::icu4x_DateFormatterGregorian_create_ymd_mv1(locale.AsFFI(),
    128    length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }),
    129    alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false }),
    130    year_style.has_value() ? (icu4x::capi::YearStyle_option{ { year_style.value().AsFFI() }, true }) : (icu4x::capi::YearStyle_option{ {}, false }));
    131  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateFormatterGregorian>>(std::unique_ptr<icu4x::DateFormatterGregorian>(icu4x::DateFormatterGregorian::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err)));
    132 }
    133 
    134 inline diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError> icu4x::DateFormatterGregorian::create_ymd_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::DateTimeAlignment> alignment, std::optional<icu4x::YearStyle> year_style) {
    135  auto result = icu4x::capi::icu4x_DateFormatterGregorian_create_ymd_with_provider_mv1(provider.AsFFI(),
    136    locale.AsFFI(),
    137    length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }),
    138    alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false }),
    139    year_style.has_value() ? (icu4x::capi::YearStyle_option{ { year_style.value().AsFFI() }, true }) : (icu4x::capi::YearStyle_option{ {}, false }));
    140  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateFormatterGregorian>>(std::unique_ptr<icu4x::DateFormatterGregorian>(icu4x::DateFormatterGregorian::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err)));
    141 }
    142 
    143 inline diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError> icu4x::DateFormatterGregorian::create_de(const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::DateTimeAlignment> alignment) {
    144  auto result = icu4x::capi::icu4x_DateFormatterGregorian_create_de_mv1(locale.AsFFI(),
    145    length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }),
    146    alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false }));
    147  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateFormatterGregorian>>(std::unique_ptr<icu4x::DateFormatterGregorian>(icu4x::DateFormatterGregorian::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err)));
    148 }
    149 
    150 inline diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError> icu4x::DateFormatterGregorian::create_de_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::DateTimeAlignment> alignment) {
    151  auto result = icu4x::capi::icu4x_DateFormatterGregorian_create_de_with_provider_mv1(provider.AsFFI(),
    152    locale.AsFFI(),
    153    length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }),
    154    alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false }));
    155  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateFormatterGregorian>>(std::unique_ptr<icu4x::DateFormatterGregorian>(icu4x::DateFormatterGregorian::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err)));
    156 }
    157 
    158 inline diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError> icu4x::DateFormatterGregorian::create_mde(const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::DateTimeAlignment> alignment) {
    159  auto result = icu4x::capi::icu4x_DateFormatterGregorian_create_mde_mv1(locale.AsFFI(),
    160    length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }),
    161    alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false }));
    162  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateFormatterGregorian>>(std::unique_ptr<icu4x::DateFormatterGregorian>(icu4x::DateFormatterGregorian::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err)));
    163 }
    164 
    165 inline diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError> icu4x::DateFormatterGregorian::create_mde_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::DateTimeAlignment> alignment) {
    166  auto result = icu4x::capi::icu4x_DateFormatterGregorian_create_mde_with_provider_mv1(provider.AsFFI(),
    167    locale.AsFFI(),
    168    length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }),
    169    alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false }));
    170  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateFormatterGregorian>>(std::unique_ptr<icu4x::DateFormatterGregorian>(icu4x::DateFormatterGregorian::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err)));
    171 }
    172 
    173 inline diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError> icu4x::DateFormatterGregorian::create_ymde(const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::DateTimeAlignment> alignment, std::optional<icu4x::YearStyle> year_style) {
    174  auto result = icu4x::capi::icu4x_DateFormatterGregorian_create_ymde_mv1(locale.AsFFI(),
    175    length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }),
    176    alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false }),
    177    year_style.has_value() ? (icu4x::capi::YearStyle_option{ { year_style.value().AsFFI() }, true }) : (icu4x::capi::YearStyle_option{ {}, false }));
    178  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateFormatterGregorian>>(std::unique_ptr<icu4x::DateFormatterGregorian>(icu4x::DateFormatterGregorian::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err)));
    179 }
    180 
    181 inline diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError> icu4x::DateFormatterGregorian::create_ymde_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::DateTimeAlignment> alignment, std::optional<icu4x::YearStyle> year_style) {
    182  auto result = icu4x::capi::icu4x_DateFormatterGregorian_create_ymde_with_provider_mv1(provider.AsFFI(),
    183    locale.AsFFI(),
    184    length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }),
    185    alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false }),
    186    year_style.has_value() ? (icu4x::capi::YearStyle_option{ { year_style.value().AsFFI() }, true }) : (icu4x::capi::YearStyle_option{ {}, false }));
    187  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateFormatterGregorian>>(std::unique_ptr<icu4x::DateFormatterGregorian>(icu4x::DateFormatterGregorian::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err)));
    188 }
    189 
    190 inline diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError> icu4x::DateFormatterGregorian::create_e(const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length) {
    191  auto result = icu4x::capi::icu4x_DateFormatterGregorian_create_e_mv1(locale.AsFFI(),
    192    length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }));
    193  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateFormatterGregorian>>(std::unique_ptr<icu4x::DateFormatterGregorian>(icu4x::DateFormatterGregorian::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err)));
    194 }
    195 
    196 inline diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError> icu4x::DateFormatterGregorian::create_e_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length) {
    197  auto result = icu4x::capi::icu4x_DateFormatterGregorian_create_e_with_provider_mv1(provider.AsFFI(),
    198    locale.AsFFI(),
    199    length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }));
    200  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateFormatterGregorian>>(std::unique_ptr<icu4x::DateFormatterGregorian>(icu4x::DateFormatterGregorian::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err)));
    201 }
    202 
    203 inline diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError> icu4x::DateFormatterGregorian::create_m(const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::DateTimeAlignment> alignment) {
    204  auto result = icu4x::capi::icu4x_DateFormatterGregorian_create_m_mv1(locale.AsFFI(),
    205    length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }),
    206    alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false }));
    207  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateFormatterGregorian>>(std::unique_ptr<icu4x::DateFormatterGregorian>(icu4x::DateFormatterGregorian::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err)));
    208 }
    209 
    210 inline diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError> icu4x::DateFormatterGregorian::create_m_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::DateTimeAlignment> alignment) {
    211  auto result = icu4x::capi::icu4x_DateFormatterGregorian_create_m_with_provider_mv1(provider.AsFFI(),
    212    locale.AsFFI(),
    213    length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }),
    214    alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false }));
    215  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateFormatterGregorian>>(std::unique_ptr<icu4x::DateFormatterGregorian>(icu4x::DateFormatterGregorian::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err)));
    216 }
    217 
    218 inline diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError> icu4x::DateFormatterGregorian::create_ym(const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::DateTimeAlignment> alignment, std::optional<icu4x::YearStyle> year_style) {
    219  auto result = icu4x::capi::icu4x_DateFormatterGregorian_create_ym_mv1(locale.AsFFI(),
    220    length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }),
    221    alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false }),
    222    year_style.has_value() ? (icu4x::capi::YearStyle_option{ { year_style.value().AsFFI() }, true }) : (icu4x::capi::YearStyle_option{ {}, false }));
    223  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateFormatterGregorian>>(std::unique_ptr<icu4x::DateFormatterGregorian>(icu4x::DateFormatterGregorian::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err)));
    224 }
    225 
    226 inline diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError> icu4x::DateFormatterGregorian::create_ym_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::DateTimeAlignment> alignment, std::optional<icu4x::YearStyle> year_style) {
    227  auto result = icu4x::capi::icu4x_DateFormatterGregorian_create_ym_with_provider_mv1(provider.AsFFI(),
    228    locale.AsFFI(),
    229    length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }),
    230    alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false }),
    231    year_style.has_value() ? (icu4x::capi::YearStyle_option{ { year_style.value().AsFFI() }, true }) : (icu4x::capi::YearStyle_option{ {}, false }));
    232  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateFormatterGregorian>>(std::unique_ptr<icu4x::DateFormatterGregorian>(icu4x::DateFormatterGregorian::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err)));
    233 }
    234 
    235 inline diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError> icu4x::DateFormatterGregorian::create_y(const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::DateTimeAlignment> alignment, std::optional<icu4x::YearStyle> year_style) {
    236  auto result = icu4x::capi::icu4x_DateFormatterGregorian_create_y_mv1(locale.AsFFI(),
    237    length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }),
    238    alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false }),
    239    year_style.has_value() ? (icu4x::capi::YearStyle_option{ { year_style.value().AsFFI() }, true }) : (icu4x::capi::YearStyle_option{ {}, false }));
    240  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateFormatterGregorian>>(std::unique_ptr<icu4x::DateFormatterGregorian>(icu4x::DateFormatterGregorian::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err)));
    241 }
    242 
    243 inline diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError> icu4x::DateFormatterGregorian::create_y_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::DateTimeAlignment> alignment, std::optional<icu4x::YearStyle> year_style) {
    244  auto result = icu4x::capi::icu4x_DateFormatterGregorian_create_y_with_provider_mv1(provider.AsFFI(),
    245    locale.AsFFI(),
    246    length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }),
    247    alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false }),
    248    year_style.has_value() ? (icu4x::capi::YearStyle_option{ { year_style.value().AsFFI() }, true }) : (icu4x::capi::YearStyle_option{ {}, false }));
    249  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateFormatterGregorian>>(std::unique_ptr<icu4x::DateFormatterGregorian>(icu4x::DateFormatterGregorian::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err)));
    250 }
    251 
    252 inline std::string icu4x::DateFormatterGregorian::format_iso(const icu4x::IsoDate& date) const {
    253  std::string output;
    254  diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output);
    255  icu4x::capi::icu4x_DateFormatterGregorian_format_iso_mv1(this->AsFFI(),
    256    date.AsFFI(),
    257    &write);
    258  return output;
    259 }
    260 
    261 inline const icu4x::capi::DateFormatterGregorian* icu4x::DateFormatterGregorian::AsFFI() const {
    262  return reinterpret_cast<const icu4x::capi::DateFormatterGregorian*>(this);
    263 }
    264 
    265 inline icu4x::capi::DateFormatterGregorian* icu4x::DateFormatterGregorian::AsFFI() {
    266  return reinterpret_cast<icu4x::capi::DateFormatterGregorian*>(this);
    267 }
    268 
    269 inline const icu4x::DateFormatterGregorian* icu4x::DateFormatterGregorian::FromFFI(const icu4x::capi::DateFormatterGregorian* ptr) {
    270  return reinterpret_cast<const icu4x::DateFormatterGregorian*>(ptr);
    271 }
    272 
    273 inline icu4x::DateFormatterGregorian* icu4x::DateFormatterGregorian::FromFFI(icu4x::capi::DateFormatterGregorian* ptr) {
    274  return reinterpret_cast<icu4x::DateFormatterGregorian*>(ptr);
    275 }
    276 
    277 inline void icu4x::DateFormatterGregorian::operator delete(void* ptr) {
    278  icu4x::capi::icu4x_DateFormatterGregorian_destroy_mv1(reinterpret_cast<icu4x::capi::DateFormatterGregorian*>(ptr));
    279 }
    280 
    281 
    282 #endif // icu4x_DateFormatterGregorian_HPP