tor-browser

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

ZonedIsoDateTime.d.hpp (2687B)


      1 #ifndef icu4x_ZonedIsoDateTime_D_HPP
      2 #define icu4x_ZonedIsoDateTime_D_HPP
      3 
      4 #include <stdio.h>
      5 #include <stdint.h>
      6 #include <stddef.h>
      7 #include <stdbool.h>
      8 #include <memory>
      9 #include <functional>
     10 #include <optional>
     11 #include <cstdlib>
     12 #include "../diplomat_runtime.hpp"
     13 
     14 namespace icu4x {
     15 namespace capi { struct IanaParser; }
     16 class IanaParser;
     17 namespace capi { struct IsoDate; }
     18 class IsoDate;
     19 namespace capi { struct Time; }
     20 class Time;
     21 namespace capi { struct TimeZoneInfo; }
     22 class TimeZoneInfo;
     23 namespace capi { struct UtcOffset; }
     24 class UtcOffset;
     25 namespace capi { struct VariantOffsetsCalculator; }
     26 class VariantOffsetsCalculator;
     27 struct ZonedIsoDateTime;
     28 class Rfc9557ParseError;
     29 }
     30 
     31 
     32 namespace icu4x {
     33 namespace capi {
     34    struct ZonedIsoDateTime {
     35      icu4x::capi::IsoDate* date;
     36      icu4x::capi::Time* time;
     37      icu4x::capi::TimeZoneInfo* zone;
     38    };
     39 
     40    typedef struct ZonedIsoDateTime_option {union { ZonedIsoDateTime ok; }; bool is_ok; } ZonedIsoDateTime_option;
     41 } // namespace capi
     42 } // namespace
     43 
     44 
     45 namespace icu4x {
     46 /**
     47 * An ICU4X ZonedDateTime object capable of containing a ISO-8601 date, time, and zone.
     48 *
     49 * See the [Rust documentation for `ZonedDateTime`](https://docs.rs/icu/latest/icu/time/struct.ZonedDateTime.html) for more information.
     50 */
     51 struct ZonedIsoDateTime {
     52  std::unique_ptr<icu4x::IsoDate> date;
     53  std::unique_ptr<icu4x::Time> time;
     54  std::unique_ptr<icu4x::TimeZoneInfo> zone;
     55 
     56  /**
     57   * Creates a new [`ZonedIsoDateTime`] from an IXDTF string.
     58   *
     59   * See the [Rust documentation for `try_full_from_str`](https://docs.rs/icu/latest/icu/time/struct.ZonedDateTime.html#method.try_full_from_str) for more information.
     60   */
     61  inline static diplomat::result<icu4x::ZonedIsoDateTime, icu4x::Rfc9557ParseError> full_from_string(std::string_view v, const icu4x::IanaParser& iana_parser, const icu4x::VariantOffsetsCalculator& offset_calculator);
     62 
     63  /**
     64   * Creates a new [`ZonedIsoDateTime`] from milliseconds since epoch (timestamp) and a UTC offset.
     65   *
     66   * Note: [`ZonedIsoDateTime`]s created with this constructor can only be formatted using localized offset zone styles.
     67   *
     68   * See the [Rust documentation for `from_epoch_milliseconds_and_utc_offset`](https://docs.rs/icu/latest/icu/time/struct.ZonedDateTime.html#method.from_epoch_milliseconds_and_utc_offset) for more information.
     69   */
     70  inline static icu4x::ZonedIsoDateTime from_epoch_milliseconds_and_utc_offset(int64_t epoch_milliseconds, const icu4x::UtcOffset& utc_offset);
     71 
     72  inline icu4x::capi::ZonedIsoDateTime AsFFI() const;
     73  inline static icu4x::ZonedIsoDateTime FromFFI(icu4x::capi::ZonedIsoDateTime c_struct);
     74 };
     75 
     76 } // namespace
     77 #endif // icu4x_ZonedIsoDateTime_D_HPP