This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
zhangyang-zerotierone/zeroidc/vendor/js-sys/src/Temporal.rs

1058 lines
57 KiB
Rust
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

use super::*;
#[wasm_bindgen]
extern "C" {
#[wasm_bindgen(js_namespace = Temporal, extends = Object)]
#[derive(Clone, Debug)]
pub type Instant;
#[wasm_bindgen(static_method_of = Instant, js_namespace = Temporal)]
pub fn from(val: &JsValue) -> Instant;
#[wasm_bindgen(static_method_of = Instant, js_namespace = Temporal)]
pub fn compare(one: &Instant, two: &Instant) -> i32;
#[wasm_bindgen(method, getter, structural, js_name = epochSeconds)]
pub fn epoch_seconds(this: &Instant) -> u64;
#[wasm_bindgen(method, getter, structural, js_name = epochMilliseconds)]
pub fn epoch_milliseconds(this: &Instant) -> u64;
#[wasm_bindgen(method, getter, structural, js_name = epochMicroseconds)]
pub fn epoch_microseconds(this: &Instant) -> BigInt;
#[wasm_bindgen(method, getter, structural, js_name = epochNanoseconds)]
pub fn epoch_nanoseconds(this: &Instant) -> BigInt;
/// This method adds duration to Instant.
///
/// The years, months, weeks, and days fields of duration must be zero.
#[wasm_bindgen(method)]
pub fn add(this: &Instant, duration: &Duration, options: &JsValue) -> Instant;
/// This method subtracts duration to Instant.
///
/// The years, months, weeks, and days fields of duration must be zero.
#[wasm_bindgen(method)]
pub fn subtract(this: &Instant, duration: &Duration, options: &JsValue) -> Instant;
/// This method computes the difference between the two times represented by zonedDateTime and
/// other, optionally rounds it, and returns it as a Temporal.Duration object. If other is earlier
/// than zonedDateTime then the resulting duration will be negative. The returned Temporal.Duration, when
/// added to zonedDateTime with the same options, will yield other.
#[wasm_bindgen(method)]
pub fn until(this: &Instant, other: &Instant, options: &JsValue) -> Duration;
/// This method computes the difference between the two times represented by zonedDateTime and
/// other, optionally rounds it, and returns it as a Temporal.Duration object. If other is later
/// than zonedDateTime then the resulting duration will be negative. The returned Temporal.Duration, when
/// added to zonedDateTime with the same options, will yield other.
#[wasm_bindgen(method)]
pub fn since(this: &Instant, other: &Instant, options: &JsValue) -> Duration;
/// Returns a new Temporal.Instant object which is zonedDateTime rounded to `roundTo` (if
/// a string parameter is used) or `roundingIncrement` of `smallestUnit` (if an object parameter
/// is used).
#[wasm_bindgen(method)]
pub fn round(this: &Instant, round_to: &JsValue) -> Instant;
#[wasm_bindgen(method)]
pub fn equals(this: &Instant, other: &Instant) -> bool;
/// This method overrides the Object.prototype.toString() method and provides a convenient, unambiguous
/// string representation of date. The string can be passed to Temporal.PlainDate.from() to
/// create a new Temporal.PlainDate object.
#[wasm_bindgen(method, js_name = toString)]
pub fn to_string(this: &Instant) -> JsString;
/// This method overrides `Object.prototype.toLocaleString()` to provide a human-readable,
/// language-sensitive representation of duration.
///
/// The locales and options arguments are the same as in the constructor to Intl.DateTimeFormat.
#[wasm_bindgen(method, js_name = toLocaleString)]
pub fn to_locale_string(this: &Instant, locales: &JsValue, options: &JsValue) -> JsString;
}
#[wasm_bindgen]
extern "C" {
#[wasm_bindgen(js_namespace = Temporal, extends = Object)]
#[derive(Clone, Debug)]
pub type PlainDateTime;
#[wasm_bindgen(static_method_of = PlainDateTime, js_namespace = Temporal)]
pub fn from(val: &JsValue) -> PlainDateTime;
#[wasm_bindgen(static_method_of = PlainDateTime, js_namespace = Temporal)]
pub fn compare(one: &PlainDateTime, two: &PlainDateTime) -> i32;
#[wasm_bindgen(method, getter, structural)]
pub fn year(this: &PlainDateTime) -> i32;
#[wasm_bindgen(method, getter, structural)]
pub fn month(this: &PlainDateTime) -> u32;
#[wasm_bindgen(method, getter, structural)]
pub fn week(this: &PlainDateTime) -> u32;
#[wasm_bindgen(method, getter, structural)]
pub fn day(this: &PlainDateTime) -> u32;
#[wasm_bindgen(method, getter, structural)]
pub fn hour(this: &PlainDateTime) -> u32;
#[wasm_bindgen(method, getter, structural)]
pub fn minute(this: &PlainDateTime) -> u32;
#[wasm_bindgen(method, getter, structural)]
pub fn second(this: &PlainDateTime) -> u32;
#[wasm_bindgen(method, getter, structural)]
pub fn millisecond(this: &PlainDateTime) -> u32;
#[wasm_bindgen(method, getter, structural)]
pub fn microsecond(this: &PlainDateTime) -> u32;
#[wasm_bindgen(method, getter, structural)]
pub fn nanosecond(this: &PlainDateTime) -> u32;
/// In calendars that use eras, the era and eraYear read-only properties can be used
/// together to resolve an era-relative year. Both properties are undefined when using
/// the ISO 8601 calendar. As inputs to from or with, era and eraYear can be used instead
/// of year. Unlike year, eraYear may decrease as time proceeds because some
/// eras (like the BCE era in the Gregorian calendar) count years backwards.
#[wasm_bindgen(method, getter, structural, js_name = eraYear)]
pub fn era_year(this: &PlainDateTime) -> JsValue;
/// In calendars that use eras, the era and eraYear read-only properties can be used
/// together to resolve an era-relative year. Both properties are undefined when using
/// the ISO 8601 calendar. As inputs to from or with, era and eraYear can be used instead
/// of year. Unlike year, eraYear may decrease as time proceeds because some
/// eras (like the BCE era in the Gregorian calendar) count years backwards.
#[wasm_bindgen(method, getter, structural)]
pub fn era(this: &PlainDateTime) -> JsValue;
/// The dayOfWeek read-only property gives the weekday number that the date falls
/// on. For the ISO 8601 calendar, the weekday number is defined as in the ISO 8601
/// standard: a value between 1 and 7, inclusive, with Monday being 1, and Sunday 7.
#[wasm_bindgen(method, getter, structural, js_name = dayOfWeek)]
pub fn day_of_week(this: &PlainDateTime) -> u32;
/// The dayOfYear read-only property gives the ordinal day of the year that the date
/// falls on. For the ISO 8601 calendar, this is a value between 1 and 365, or 366 in
/// a leap year.
#[wasm_bindgen(method, getter, structural, js_name = dayOfYear)]
pub fn day_of_year(this: &PlainDateTime) -> u32;
/// The weekOfYear read-only property gives the ISO week number of the date. For the
/// ISO 8601 calendar, this is normally a value between 1 and 52, but in a few cases it
/// can be 53 as well. ISO week 1 is the week containing the first Thursday of the year.
#[wasm_bindgen(method, getter, structural, js_name = weekOfYear)]
pub fn week_of_year(this: &PlainDateTime) -> u32;
/// The daysInWeek read-only property gives the number of days in the week that the
/// date falls in. For the ISO 8601 calendar, this is always 7, but in other calendar
/// systems it may differ from week to week.
#[wasm_bindgen(method, getter, structural, js_name = daysInWeek)]
pub fn days_in_week(this: &PlainDateTime) -> u32;
/// The daysInMonth read-only property gives the number of days in the month that the
/// date falls in. For the ISO 8601 calendar, this is 28, 29, 30, or 31, depending
/// on the month and whether the year is a leap year.
#[wasm_bindgen(method, getter, structural, js_name = daysInMonth)]
pub fn days_in_month(this: &PlainDateTime) -> u32;
/// The daysInYear read-only property gives the number of days in the year that the date
/// falls in. For the ISO 8601 calendar, this is 365 or 366, depending on whether the year
/// is a leap year.
#[wasm_bindgen(method, getter, structural, js_name = daysInYear)]
pub fn days_in_year(this: &PlainDateTime) -> u32;
/// The monthsInYear read-only property gives the number of months in the year that the date
/// falls in. For the ISO 8601 calendar, this is always 12, but in other calendar systems
/// it may differ from year to year.
#[wasm_bindgen(method, getter, structural, js_name = monthsInWeek)]
pub fn months_in_year(this: &PlainDateTime) -> u32;
/// The inLeapYear read-only property tells whether the year that the date falls in is a
/// leap year or not. Its value is true if the year is a leap year, and false if not.
#[wasm_bindgen(method, getter, structural, js_name = inLeapYear)]
pub fn in_leap_year(this: &PlainDateTime) -> bool;
/// This method creates a new Temporal.PlainDateTime which is a copy of zonedDateTime, but any
/// properties present on parameter override the ones already present on zonedDateTime.
#[wasm_bindgen(method, js_name = withPlainDate)]
pub fn with(this: &PlainDateTime, parameter: &JsValue, options: &JsValue) -> PlainDateTime;
/// Returns a new `Temporal.PlainDateTime` object which replaces the calendar date of zonedDateTime
/// with the calendar date represented by plainDate.
#[wasm_bindgen(method, js_name = withPlainDate)]
pub fn with_plain_date(this: &PlainDateTime, date: &PlainDate) -> PlainDateTime;
/// Returns a new `Temporal.PlainDateTime` object which is the date indicated by date, projected
/// into calendar.
#[wasm_bindgen(method, js_name = withCalendar)]
pub fn with_calendar(this: &PlainDateTime, calendar: &str) -> PlainDateTime;
/// This method adds duration to zonedDateTime.
#[wasm_bindgen(method)]
pub fn add(this: &PlainDateTime, duration: &Duration, options: &JsValue) -> PlainDateTime;
/// This method subtracts duration to zonedDateTime.
#[wasm_bindgen(method)]
pub fn subtract(this: &PlainDateTime, duration: &Duration, options: &JsValue) -> PlainDateTime;
/// This method computes the difference between the two times represented by zonedDateTime and
/// other, optionally rounds it, and returns it as a Temporal.Duration object. If other is earlier
/// than zonedDateTime then the resulting duration will be negative. The returned Temporal.Duration, when
/// added to zonedDateTime with the same options, will yield other.
#[wasm_bindgen(method)]
pub fn until(this: &PlainDateTime, other: &PlainDateTime, options: &JsValue) -> Duration;
/// This method computes the difference between the two times represented by zonedDateTime and
/// other, optionally rounds it, and returns it as a Temporal.Duration object. If other is later
/// than zonedDateTime then the resulting duration will be negative. The returned Temporal.Duration, when
/// added to zonedDateTime with the same options, will yield other.
#[wasm_bindgen(method)]
pub fn since(this: &PlainDateTime, other: &PlainDateTime, options: &JsValue) -> Duration;
/// Returns a new Temporal.PlainDateTime object which is zonedDateTime rounded to `roundTo` (if
/// a string parameter is used) or `roundingIncrement` of `smallestUnit` (if an object parameter
/// is used).
#[wasm_bindgen(method)]
pub fn round(this: &PlainDateTime, round_to: &JsValue) -> PlainDateTime;
#[wasm_bindgen(method)]
pub fn equals(this: &PlainDateTime, other: &PlainDateTime) -> bool;
/// Returns: a plain object with properties expressing zonedDateTime in the ISO 8601 calendar, including
/// all date/time fields as well as the calendar, timeZone, and offset properties.
///
/// This is an advanced method that's mainly useful if you are implementing a custom calendar. Most
/// developers will not need to use it.
#[wasm_bindgen(method, js_name = getISOFields)]
pub fn get_iso_fields(this: &PlainDateTime) -> JsValue;
}
#[wasm_bindgen]
extern "C" {
#[wasm_bindgen(js_namespace = Temporal, extends = Object)]
#[derive(Clone, Debug)]
pub type ZonedDateTime;
#[wasm_bindgen(static_method_of = ZonedDateTime, js_namespace = Temporal)]
pub fn from(val: &JsValue) -> ZonedDateTime;
#[wasm_bindgen(static_method_of = ZonedDateTime, js_namespace = Temporal)]
pub fn compare(one: &ZonedDateTime, two: &ZonedDateTime) -> i32;
#[wasm_bindgen(method, getter, structural)]
pub fn year(this: &ZonedDateTime) -> i32;
#[wasm_bindgen(method, getter, structural)]
pub fn month(this: &ZonedDateTime) -> u32;
#[wasm_bindgen(method, getter, structural)]
pub fn week(this: &ZonedDateTime) -> u32;
#[wasm_bindgen(method, getter, structural)]
pub fn day(this: &ZonedDateTime) -> u32;
#[wasm_bindgen(method, getter, structural)]
pub fn hour(this: &ZonedDateTime) -> u32;
#[wasm_bindgen(method, getter, structural)]
pub fn minute(this: &ZonedDateTime) -> u32;
#[wasm_bindgen(method, getter, structural)]
pub fn second(this: &ZonedDateTime) -> u32;
#[wasm_bindgen(method, getter, structural)]
pub fn millisecond(this: &ZonedDateTime) -> u32;
#[wasm_bindgen(method, getter, structural)]
pub fn microsecond(this: &ZonedDateTime) -> u32;
#[wasm_bindgen(method, getter, structural)]
pub fn nanosecond(this: &ZonedDateTime) -> u32;
#[wasm_bindgen(method, getter, structural, js_name = epochSeconds)]
pub fn epoch_seconds(this: &ZonedDateTime) -> u64;
#[wasm_bindgen(method, getter, structural, js_name = epochMilliseconds)]
pub fn epoch_milliseconds(this: &ZonedDateTime) -> u64;
#[wasm_bindgen(method, getter, structural, js_name = epochMicroseconds)]
pub fn epoch_microseconds(this: &ZonedDateTime) -> BigInt;
#[wasm_bindgen(method, getter, structural, js_name = epochNanoseconds)]
pub fn epoch_nanoseconds(this: &ZonedDateTime) -> BigInt;
/// In calendars that use eras, the era and eraYear read-only properties can be used
/// together to resolve an era-relative year. Both properties are undefined when using
/// the ISO 8601 calendar. As inputs to from or with, era and eraYear can be used instead
/// of year. Unlike year, eraYear may decrease as time proceeds because some
/// eras (like the BCE era in the Gregorian calendar) count years backwards.
#[wasm_bindgen(method, getter, structural, js_name = eraYear)]
pub fn era_year(this: &ZonedDateTime) -> JsValue;
/// In calendars that use eras, the era and eraYear read-only properties can be used
/// together to resolve an era-relative year. Both properties are undefined when using
/// the ISO 8601 calendar. As inputs to from or with, era and eraYear can be used instead
/// of year. Unlike year, eraYear may decrease as time proceeds because some
/// eras (like the BCE era in the Gregorian calendar) count years backwards.
#[wasm_bindgen(method, getter, structural)]
pub fn era(this: &ZonedDateTime) -> JsValue;
/// The dayOfWeek read-only property gives the weekday number that the date falls
/// on. For the ISO 8601 calendar, the weekday number is defined as in the ISO 8601
/// standard: a value between 1 and 7, inclusive, with Monday being 1, and Sunday 7.
#[wasm_bindgen(method, getter, structural, js_name = dayOfWeek)]
pub fn day_of_week(this: &ZonedDateTime) -> u32;
/// The dayOfYear read-only property gives the ordinal day of the year that the date
/// falls on. For the ISO 8601 calendar, this is a value between 1 and 365, or 366 in
/// a leap year.
#[wasm_bindgen(method, getter, structural, js_name = dayOfYear)]
pub fn day_of_year(this: &ZonedDateTime) -> u32;
/// The weekOfYear read-only property gives the ISO week number of the date. For the
/// ISO 8601 calendar, this is normally a value between 1 and 52, but in a few cases it
/// can be 53 as well. ISO week 1 is the week containing the first Thursday of the year.
#[wasm_bindgen(method, getter, structural, js_name = weekOfYear)]
pub fn week_of_year(this: &ZonedDateTime) -> u32;
/// The daysInWeek read-only property gives the number of days in the week that the
/// date falls in. For the ISO 8601 calendar, this is always 7, but in other calendar
/// systems it may differ from week to week.
#[wasm_bindgen(method, getter, structural, js_name = daysInWeek)]
pub fn days_in_week(this: &ZonedDateTime) -> u32;
/// The daysInMonth read-only property gives the number of days in the month that the
/// date falls in. For the ISO 8601 calendar, this is 28, 29, 30, or 31, depending
/// on the month and whether the year is a leap year.
#[wasm_bindgen(method, getter, structural, js_name = daysInMonth)]
pub fn days_in_month(this: &ZonedDateTime) -> u32;
/// The daysInYear read-only property gives the number of days in the year that the date
/// falls in. For the ISO 8601 calendar, this is 365 or 366, depending on whether the year
/// is a leap year.
#[wasm_bindgen(method, getter, structural, js_name = daysInYear)]
pub fn days_in_year(this: &ZonedDateTime) -> u32;
/// The monthsInYear read-only property gives the number of months in the year that the date
/// falls in. For the ISO 8601 calendar, this is always 12, but in other calendar systems
/// it may differ from year to year.
#[wasm_bindgen(method, getter, structural, js_name = monthsInWeek)]
pub fn months_in_year(this: &ZonedDateTime) -> u32;
/// The inLeapYear read-only property tells whether the year that the date falls in is a
/// leap year or not. Its value is true if the year is a leap year, and false if not.
#[wasm_bindgen(method, getter, structural, js_name = inLeapYear)]
pub fn in_leap_year(this: &ZonedDateTime) -> bool;
/// The `hoursInDay` read-only property returns the number of real-world hours
/// between the start of the current day (usually midnight) in zonedDateTime.timeZone to
/// the start of the next calendar day in the same time zone. Normally days will be 24 hours
/// long, but on days where there are DST changes or other time zone transitions, this
/// property may return 23 or 25. In rare cases, other integers or even non-integer
/// values may be returned, e.g. when time zone definitions change by less than one hour.
#[wasm_bindgen(method, getter, structural, js_name = inLeapYear)]
pub fn hours_in_day(this: &ZonedDateTime) -> u32;
#[wasm_bindgen(method, getter, structural, js_name = startOfDay)]
pub fn start_of_day(this: &ZonedDateTime) -> ZonedDateTime;
/// The offset read-only property is the offset (formatted as a string) relative
/// to UTC of the current time zone and exact instant. Examples: '-08:00' or '+05:30'
#[wasm_bindgen(method, getter, structural)]
pub fn offset(this: &ZonedDateTime) -> JsString;
/// This method creates a new Temporal.ZonedDateTime which is a copy of zonedDateTime, but any
/// properties present on parameter override the ones already present on zonedDateTime.
#[wasm_bindgen(method, js_name = withPlainDate)]
pub fn with(this: &ZonedDateTime, parameter: &JsValue, options: &JsValue) -> ZonedDateTime;
/// Returns a new `Temporal.ZonedDateTime` object which replaces the calendar date of zonedDateTime
/// with the calendar date represented by plainDate.
#[wasm_bindgen(method, js_name = withPlainDate)]
pub fn with_plain_date(this: &ZonedDateTime, date: &PlainDate) -> ZonedDateTime;
/// Returns a new `Temporal.ZonedDateTime` object which is the date indicated by date, projected
/// into calendar.
#[wasm_bindgen(method, js_name = withCalendar)]
pub fn with_calendar(this: &ZonedDateTime, calendar: &str) -> ZonedDateTime;
/// This method adds duration to zonedDateTime.
#[wasm_bindgen(method)]
pub fn add(this: &ZonedDateTime, duration: &Duration, options: &JsValue) -> ZonedDateTime;
/// This method subtracts duration to zonedDateTime.
#[wasm_bindgen(method)]
pub fn subtract(this: &ZonedDateTime, duration: &Duration, options: &JsValue) -> ZonedDateTime;
/// This method computes the difference between the two times represented by zonedDateTime and
/// other, optionally rounds it, and returns it as a Temporal.Duration object. If other is earlier
/// than zonedDateTime then the resulting duration will be negative. The returned Temporal.Duration, when
/// added to zonedDateTime with the same options, will yield other.
#[wasm_bindgen(method)]
pub fn until(this: &ZonedDateTime, other: &ZonedDateTime, options: &JsValue) -> Duration;
/// This method computes the difference between the two times represented by zonedDateTime and
/// other, optionally rounds it, and returns it as a Temporal.Duration object. If other is later
/// than zonedDateTime then the resulting duration will be negative. The returned Temporal.Duration, when
/// added to zonedDateTime with the same options, will yield other.
#[wasm_bindgen(method)]
pub fn since(this: &ZonedDateTime, other: &ZonedDateTime, options: &JsValue) -> Duration;
/// Returns a new Temporal.ZonedDateTime object which is zonedDateTime rounded to `roundTo` (if
/// a string parameter is used) or `roundingIncrement` of `smallestUnit` (if an object parameter
/// is used).
#[wasm_bindgen(method)]
pub fn round(this: &ZonedDateTime, round_to: &JsValue) -> ZonedDateTime;
#[wasm_bindgen(method)]
pub fn equals(this: &ZonedDateTime, other: &ZonedDateTime) -> bool;
/// Returns: a plain object with properties expressing zonedDateTime in the ISO 8601 calendar, including
/// all date/time fields as well as the calendar, timeZone, and offset properties.
///
/// This is an advanced method that's mainly useful if you are implementing a custom calendar. Most
/// developers will not need to use it.
#[wasm_bindgen(method, js_name = getISOFields)]
pub fn get_iso_fields(this: &ZonedDateTime) -> JsValue;
}
#[wasm_bindgen]
extern "C" {
#[wasm_bindgen(js_namespace = Temporal, extends = Object)]
#[derive(Clone, Debug)]
pub type Duration;
#[wasm_bindgen(static_method_of = Duration, js_namespace = Temporal)]
pub fn from(val: &JsValue) -> Duration;
#[wasm_bindgen(static_method_of = Duration, js_namespace = Temporal)]
pub fn compare(one: &Duration, two: &Duration) -> i32;
#[wasm_bindgen(method, getter, structural)]
pub fn years(this: &Duration) -> i32;
#[wasm_bindgen(method, getter, structural)]
pub fn months(this: &Duration) -> i32;
#[wasm_bindgen(method, getter, structural)]
pub fn weeks(this: &Duration) -> i32;
#[wasm_bindgen(method, getter, structural)]
pub fn days(this: &Duration) -> i32;
#[wasm_bindgen(method, getter, structural)]
pub fn hours(this: &Duration) -> i32;
#[wasm_bindgen(method, getter, structural)]
pub fn minutes(this: &Duration) -> i32;
#[wasm_bindgen(method, getter, structural)]
pub fn seconds(this: &Duration) -> i32;
#[wasm_bindgen(method, getter, structural)]
pub fn milliseconds(this: &Duration) -> i32;
#[wasm_bindgen(method, getter, structural)]
pub fn microseconds(this: &Duration) -> i32;
#[wasm_bindgen(method, getter, structural)]
pub fn nanoseconds(this: &Duration) -> i32;
/// The read-only `sign` property has the value 1, 0, or 1, depending on whether
/// the duration is negative, zero, or positive.
#[wasm_bindgen(method, getter, structural)]
pub fn sign(this: &Duration) -> i32;
/// The read-only `blank` property is a convenience property that tells whether duration
/// represents a zero length of time. In other words, `duration.blank === (duration.sign === 0)`.
#[wasm_bindgen(method, getter, structural)]
pub fn blank(this: &Duration) -> bool;
/// In order to be valid, the resulting duration must not have fields with mixed signs, and
/// so the result is balanced. For usage examples and a more complete explanation of how
/// balancing works and why it is necessary, see [Duration balancing].
///
/// [Duration balancing]: https://tc39.es/proposal-temporal/docs/balancing.html
#[wasm_bindgen(method)]
pub fn add(this: &Duration, other: &Duration, options: &JsValue) -> Duration;
/// In order to be valid, the resulting duration must not have fields with mixed signs, and
/// so the result is balanced. For usage examples and a more complete explanation of how
/// balancing works and why it is necessary, see [Duration balancing].
///
/// [Duration balancing]: https://tc39.es/proposal-temporal/docs/balancing.html
#[wasm_bindgen(method)]
pub fn subtract(this: &Duration, other: &Duration, options: &JsValue) -> Duration;
/// This method gives the absolute value of duration. It returns a newly constructed
/// `Temporal.Duration` with all the fields having the same magnitude as those of
/// duration, but positive. If duration is already positive or zero, then the returned
/// object is a copy of duration.
#[wasm_bindgen(method)]
pub fn abs(this: &Duration) -> Duration;
/// Rounds and/or balances duration to the given largest and smallest units and rounding
/// increment, and returns the result as a new `Temporal.Duration` object.
#[wasm_bindgen(method)]
pub fn round(this: &Duration, round_to: &JsValue) -> Duration;
/// Calculates the number of units of time that can fit in a particular `Temporal.Duration`.
/// If the duration IS NOT evenly divisible by the desired unit, then a fractional remainder
/// will be present in the result. If the duration IS evenly divisible by the desired
/// unit, then the integer result will be identical
/// to `duration.round({ smallestUnit: unit, largestUnit: unit, relativeTo })[unit]`
#[wasm_bindgen(method)]
pub fn total(this: &Duration, total_of: &JsValue) -> f64;
/// This method overrides `Object.prototype.toString()` and provides the ISO 8601
/// description of the duration.
#[wasm_bindgen(method, js_name = toString)]
pub fn to_string(this: &Duration, options: &JsValue) -> JsString;
/// This method is the same as duration.toString(). It is usually not called directly, but
/// it can be called automatically by JSON.stringify().
#[wasm_bindgen(method, js_name = toJson)]
pub fn to_json(this: &Duration) -> JsString;
/// This method overrides `Object.prototype.toLocaleString()` to provide a human-readable,
/// language-sensitive representation of duration.
///
/// The locales and options arguments are the same as in the constructor to Intl.DurationFormat.
#[wasm_bindgen(method, js_name = toLocaleString)]
pub fn to_locale_string(this: &Duration, locales: &JsValue, options: &JsValue) -> JsString;
}
#[wasm_bindgen]
extern "C" {
#[wasm_bindgen(js_namespace = Temporal, extends = Object)]
#[derive(Clone, Debug)]
pub type PlainTime;
#[wasm_bindgen(static_method_of = PlainTime, js_namespace = Temporal)]
pub fn from(val: &JsValue) -> PlainTime;
#[wasm_bindgen(static_method_of = PlainTime, js_namespace = Temporal)]
pub fn compare(one: &PlainTime, two: &PlainTime) -> i32;
#[wasm_bindgen(method, getter, structural)]
pub fn hour(this: &PlainTime) -> u32;
#[wasm_bindgen(method, getter, structural)]
pub fn minute(this: &PlainTime) -> u32;
#[wasm_bindgen(method, getter, structural)]
pub fn second(this: &PlainTime) -> u32;
#[wasm_bindgen(method, getter, structural)]
pub fn millisecond(this: &PlainTime) -> u32;
#[wasm_bindgen(method, getter, structural)]
pub fn microsecond(this: &PlainTime) -> u32;
#[wasm_bindgen(method, getter, structural)]
pub fn nanosecond(this: &PlainTime) -> u32;
/// This method adds duration to PlainTime.
#[wasm_bindgen(method)]
pub fn add(this: &PlainTime, duration: &Duration, options: &JsValue) -> PlainTime;
/// This method subtracts duration to PlainTime.
#[wasm_bindgen(method)]
pub fn subtract(this: &PlainTime, duration: &Duration, options: &JsValue) -> PlainTime;
/// This method computes the difference between the two times represented by PlainTime and
/// other, optionally rounds it, and returns it as a Temporal.Duration object. If other is earlier
/// than zonedDateTime then the resulting duration will be negative. The returned Temporal.Duration, when
/// added to zonedDateTime with the same options, will yield other.
#[wasm_bindgen(method)]
pub fn until(this: &PlainTime, other: &PlainTime, options: &JsValue) -> Duration;
/// This method computes the difference between the two times represented by PlainTime and
/// other, optionally rounds it, and returns it as a Temporal.Duration object. If other is later
/// than zonedDateTime then the resulting duration will be negative. The returned Temporal.Duration, when
/// added to zonedDateTime with the same options, will yield other.
#[wasm_bindgen(method)]
pub fn since(this: &PlainTime, other: &PlainTime, options: &JsValue) -> Duration;
/// Returns a new Temporal.ZonedDateTime object which is PlainTime rounded to `roundTo` (if
/// a string parameter is used) or `roundingIncrement` of `smallestUnit` (if an object parameter
/// is used).
#[wasm_bindgen(method)]
pub fn round(this: &PlainTime, round_to: &JsValue) -> PlainTime;
#[wasm_bindgen(method)]
pub fn equals(this: &PlainTime, other: &PlainTime) -> bool;
/// This method overrides `Object.prototype.toLocaleString()` to provide a human-readable,
/// language-sensitive representation of duration.
///
/// The locales and options arguments are the same as in the constructor to Intl.DateTimeFormat.
#[wasm_bindgen(method, js_name = toLocaleString)]
pub fn to_locale_string(this: &PlainTime, locales: &JsValue, options: &JsValue) -> JsString;
/// Returns: a plain object with properties expressing PlainTime in the ISO 8601 calendar, including
/// all date/time fields as well as the calendar, timeZone, and offset properties.
///
/// This is an advanced method that's mainly useful if you are implementing a custom calendar. Most
/// developers will not need to use it.
#[wasm_bindgen(method, js_name = getISOFields)]
pub fn get_iso_fields(this: &PlainTime) -> JsValue;
}
#[wasm_bindgen]
extern "C" {
/// A Temporal.PlainYearMonth represents a particular month on the calendar. For example, it
/// could be used to represent a particular instance of a monthly recurring event, like "the
/// June 2019 meeting".
#[wasm_bindgen(js_namespace = Temporal, extends = Object)]
#[derive(Clone, Debug)]
pub type PlainYearMonth;
#[wasm_bindgen(static_method_of = PlainYearMonth, js_namespace = Temporal)]
pub fn from(val: &JsValue) -> PlainYearMonth;
#[wasm_bindgen(static_method_of = PlainYearMonth, js_namespace = Temporal)]
pub fn compare(one: &PlainYearMonth, two: &PlainYearMonth) -> i32;
/// `year` is a signed integer representing the number of years relative to a
/// calendar-specific epoch. For calendars that use eras, the anchor is usually
/// aligned with the latest era so that eraYear === year for all dates in that
/// era. However, some calendars like Japanese may use a different anchor.
#[wasm_bindgen(method, getter, structural)]
pub fn year(this: &PlainYearMonth) -> i32;
/// `month` is a positive integer representing the ordinal index of the month in
/// the current year. For calendars like Hebrew or Chinese that use leap
/// months, the same-named month may have a different month value depending on
/// the year. The first month in every year has month equal to 1. The last month
/// of every year has month equal to the monthsInYear property. month values
/// start at 1, which is different from legacy Date where months are represented
/// by zero-based indices (0 to 11).
#[wasm_bindgen(method, getter, structural)]
pub fn month(this: &PlainYearMonth) -> u32;
/// `monthCode` is a calendar-specific string that identifies the month in
/// a year-independent way. For common (non-leap) months, monthCode should
/// be `M${month}`, where month is zero padded up to two digits. For uncommon
/// (leap) months in lunisolar calendars like Hebrew or Chinese, the month code
/// is the previous month's code with with an "L" suffix appended.
/// Examples:
/// * 'M02' => February;
/// * 'M08L' => repeated 8th month in the Chinese calendar;
/// * 'M05L' => Adar I in the Hebrew calendar.
#[wasm_bindgen(method, getter, structural, js_name = monthCode)]
pub fn month_code(this: &PlainYearMonth) -> JsString;
/// In calendars that use eras, the era and eraYear read-only properties can be used
/// together to resolve an era-relative year. Both properties are undefined when using
/// the ISO 8601 calendar. As inputs to from or with, era and eraYear can be used instead
/// of year. Unlike year, eraYear may decrease as time proceeds because some
/// eras (like the BCE era in the Gregorian calendar) count years backwards.
#[wasm_bindgen(method, getter, structural, js_name = eraYear)]
pub fn era_year(this: &PlainYearMonth) -> JsValue;
/// In calendars that use eras, the era and eraYear read-only properties can be used
/// together to resolve an era-relative year. Both properties are undefined when using
/// the ISO 8601 calendar. As inputs to from or with, era and eraYear can be used instead
/// of year. Unlike year, eraYear may decrease as time proceeds because some
/// eras (like the BCE era in the Gregorian calendar) count years backwards.
#[wasm_bindgen(method, getter, structural)]
pub fn era(this: &PlainYearMonth) -> JsValue;
/// The daysInMonth read-only property gives the number of days in the month that the
/// date falls in. For the ISO 8601 calendar, this is 28, 29, 30, or 31, depending
/// on the month and whether the year is a leap year.
#[wasm_bindgen(method, getter, structural, js_name = daysInMonth)]
pub fn days_in_month(this: &PlainYearMonth) -> u32;
/// The daysInYear read-only property gives the number of days in the year that the date
/// falls in. For the ISO 8601 calendar, this is 365 or 366, depending on whether the year
/// is a leap year.
#[wasm_bindgen(method, getter, structural, js_name = daysInYear)]
pub fn days_in_year(this: &PlainYearMonth) -> u32;
/// The monthsInYear read-only property gives the number of months in the year that the date
/// falls in. For the ISO 8601 calendar, this is always 12, but in other calendar systems
/// it may differ from year to year.
#[wasm_bindgen(method, getter, structural, js_name = monthsInWeek)]
pub fn months_in_year(this: &PlainYearMonth) -> u32;
/// The inLeapYear read-only property tells whether the year that the date falls in is a
/// leap year or not. Its value is true if the year is a leap year, and false if not.
#[wasm_bindgen(method, getter, structural, js_name = inLeapYear)]
pub fn in_leap_year(this: &PlainYearMonth) -> bool;
/// **Parameters:**
///
///- `duration` (`Temporal.Duration` or value convertible to one): The duration to add.
///- `options` (optional object): An object with properties representing options for the addition.
///The following options are recognized:
///- `overflow` (optional string): How to deal with additions that result in out-of-range values.
/// Allowed values are `constrain` and `reject`.
/// The default is `constrain`.
///
///**Returns:** a new `Temporal.PlainYearMonth` object which is the date indicated by `date` plus `duration`.
///
///This method adds `duration` to `date`, returning a date that is in the future relative to `date`.
///
///The `duration` argument is an object with properties denoting a duration, such as `{ days: 5 }`, or a string such as `P5D`, or a `Temporal.Duration` object.
///If `duration` is not a `Temporal.Duration` object, then it will be converted to one as if it were passed to `Temporal.Duration.from()`.
///
///Some additions may be ambiguous, because months have different lengths.
///For example, adding one month to August 31 would result in September 31, which doesn't exist.
///For these cases, the `overflow` option tells what to do:
///
///- In `constrain` mode (the default), out-of-range values are clamped to the nearest in-range value.
///- In `reject` mode, an addition that would result in an out-of-range value fails, and a `RangeError` is thrown.
///
///Additionally, if the result is earlier or later than the range of dates that `Temporal.PlainYearMonth` can represent (approximately half a million years centered on the [Unix epoch](https://en.wikipedia.org/wiki/Unix_time)), then this method will throw a `RangeError` regardless of `overflow`.
///
///Adding a negative duration is equivalent to subtracting the absolute value of that duration.
#[wasm_bindgen(method)]
pub fn add(this: &PlainYearMonth, duration: &Duration, options: &JsValue) -> PlainYearMonth;
/// **Parameters:**
///- `duration` (`Temporal.Duration` or value convertible to one): The duration to subtract.
///- `options` (optional object): An object with properties representing options for the subtraction.
///The following options are recognized:
///- `overflow` (string): How to deal with subtractions that result in out-of-range values.
/// Allowed values are `constrain` and `reject`.
/// The default is `constrain`.
///
///**Returns:** a new `Temporal.PlainYearMonth` object which is the date indicated by `date` minus `duration`.
///
///This method subtracts `duration` from `date`, returning a date that is in the past relative to `date`.
///
///The `duration` argument is an object with properties denoting a duration, such as `{ days: 5 }`, or a string such as `P5D`, or a `Temporal.Duration` object.
///If `duration` is not a `Temporal.Duration` object, then it will be converted to one as if it were passed to `Temporal.Duration.from()`.
///
///Some subtractions may be ambiguous, because months have different lengths.
///For example, subtracting one month from July 31 would result in June 31, which doesn't exist.
///For these cases, the `overflow` option tells what to do:
///
///- In `constrain` mode (the default), out-of-range values are clamped to the nearest in-range value.
///- In `reject` mode, an addition that would result in an out-of-range value fails, and a `RangeError` is thrown.
///
///Additionally, if the result is earlier or later than the range of dates that `Temporal.PlainDate` can represent (approximately half a million years centered on the [Unix epoch](https://en.wikipedia.org/wiki/Unix_time)), then this method will throw a `RangeError` regardless of `overflow`.
///
///Subtracting a negative duration is equivalent to adding the absolute value of that duration.
///
#[wasm_bindgen(method)]
pub fn subtract(
this: &PlainYearMonth,
duration: &Duration,
options: &JsValue,
) -> PlainYearMonth;
/// This function exists because it's not possible to compare using date == other
/// or date === other, due to ambiguity in the primitive representation and between
/// Temporal types.
///
/// If you don't need to know the order in which the two dates occur, then this function
/// may be less typing and more efficient than Temporal.PlainDate.compare.
#[wasm_bindgen(method)]
pub fn equals(this: &PlainYearMonth, other: &PlainYearMonth) -> bool;
/// This method overrides the Object.prototype.toString() method and provides a convenient, unambiguous
/// string representation of date. The string can be passed to Temporal.PlainYearMonth.from() to
/// create a new Temporal.PlainDate object.
#[wasm_bindgen(method, js_name = toString)]
pub fn to_string(this: &PlainYearMonth) -> JsString;
/// This method overrides `Object.prototype.toLocaleString()` to provide a human-readable,
/// language-sensitive representation of duration.
///
/// The locales and options arguments are the same as in the constructor to Intl.DateTimeFormat.
#[wasm_bindgen(method, js_name = toLocaleString)]
pub fn to_locale_string(
this: &PlainYearMonth,
locales: &JsValue,
options: &JsValue,
) -> JsString;
/// Returns: a plain object with properties expressing date in the ISO 8601
/// calendar, as well as the value of date.calendar.
///
/// This method is mainly useful if you are implementing a custom calendar. Most
/// code will not need to use it.
#[wasm_bindgen(method, js_name = getISOFields)]
pub fn get_iso_fields(this: &PlainYearMonth) -> JsValue;
}
#[wasm_bindgen]
extern "C" {
/// A date without a year component. This is useful to express
/// things like "Bastille Day is on the 14th of July".
#[wasm_bindgen(js_namespace = Temporal, extends = Object)]
#[derive(Clone, Debug)]
pub type PlainMonthDay;
#[wasm_bindgen(static_method_of = PlainMonthDay, js_namespace = Temporal)]
pub fn from(val: &JsValue) -> PlainMonthDay;
#[wasm_bindgen(static_method_of = PlainMonthDay, js_namespace = Temporal)]
pub fn compare(one: &PlainMonthDay, two: &PlainMonthDay) -> i32;
/// `monthCode` is a calendar-specific string that identifies the month in
/// a year-independent way. For common (non-leap) months, monthCode should
/// be `M${month}`, where month is zero padded up to two digits. For uncommon
/// (leap) months in lunisolar calendars like Hebrew or Chinese, the month code
/// is the previous month's code with with an "L" suffix appended.
/// Examples:
/// * 'M02' => February;
/// * 'M08L' => repeated 8th month in the Chinese calendar;
/// * 'M05L' => Adar I in the Hebrew calendar.
///
/// Note that this type has no month property, because month is ambiguous for some
/// calendars without knowing the year. Instead, the monthCode property is used which
/// is year-independent in all calendars.
#[wasm_bindgen(method, getter, structural, js_name = monthCode)]
pub fn month_code(this: &PlainMonthDay) -> JsString;
/// day is a positive integer representing the day of the month.
#[wasm_bindgen(method, getter, structural)]
pub fn day(this: &PlainMonthDay) -> u32;
/// This function exists because it's not possible to compare using date == other
/// or date === other, due to ambiguity in the primitive representation and between
/// Temporal types.
///
/// If you don't need to know the order in which the two dates occur, then this function
/// may be less typing and more efficient than Temporal.PlainMonthDay.compare.
///
/// Note that this function will return false if the two objects have different calendar
/// properties, even if the actual dates are equal.
#[wasm_bindgen(method)]
pub fn equals(this: &PlainMonthDay, other: &PlainMonthDay) -> bool;
/// This method overrides the Object.prototype.toString() method and provides a convenient, unambiguous
/// string representation of date. The string can be passed to Temporal.PlainMonthDay.from() to
/// create a new Temporal.PlainMonthDay object.
#[wasm_bindgen(method, js_name = toString)]
pub fn to_string(this: &PlainMonthDay) -> JsString;
/// This method overrides `Object.prototype.toLocaleString()` to provide a human-readable,
/// language-sensitive representation of duration.
///
/// The locales and options arguments are the same as in the constructor to Intl.DateTimeFormat.
#[wasm_bindgen(method, js_name = toLocaleString)]
pub fn to_locale_string(this: &PlainMonthDay, locales: &JsValue, options: &JsValue)
-> JsString;
/// Returns: a plain object with properties expressing date in the ISO 8601
/// calendar, as well as the value of date.calendar.
///
/// This method is mainly useful if you are implementing a custom calendar. Most
/// code will not need to use it.
#[wasm_bindgen(method, js_name = getISOFields)]
pub fn get_iso_fields(this: &PlainMonthDay) -> JsValue;
}
#[wasm_bindgen]
extern "C" {
#[wasm_bindgen(js_namespace = Temporal, extends = Object)]
#[derive(Clone, Debug)]
pub type PlainDate;
#[wasm_bindgen(js_namespace = Temporal, constructor)]
pub fn new(year: i32, month: u32, day: u32) -> PlainDate;
#[wasm_bindgen(static_method_of = PlainDate, js_namespace = Temporal)]
pub fn from(val: &JsValue) -> PlainDate;
#[wasm_bindgen(static_method_of = PlainDate, js_namespace = Temporal)]
pub fn compare(one: &PlainDate, two: &PlainDate) -> i32;
/// `year` is a signed integer representing the number of years relative to a
/// calendar-specific epoch. For calendars that use eras, the anchor is usually
/// aligned with the latest era so that eraYear === year for all dates in that
/// era. However, some calendars like Japanese may use a different anchor.
#[wasm_bindgen(method, getter, structural)]
pub fn year(this: &PlainDate) -> i32;
/// `month` is a positive integer representing the ordinal index of the month in
/// the current year. For calendars like Hebrew or Chinese that use leap
/// months, the same-named month may have a different month value depending on
/// the year. The first month in every year has month equal to 1. The last month
/// of every year has month equal to the monthsInYear property. month values
/// start at 1, which is different from legacy Date where months are represented
/// by zero-based indices (0 to 11).
#[wasm_bindgen(method, getter, structural)]
pub fn month(this: &PlainDate) -> u32;
/// `monthCode` is a calendar-specific string that identifies the month in
/// a year-independent way. For common (non-leap) months, monthCode should
/// be `M${month}`, where month is zero padded up to two digits. For uncommon
/// (leap) months in lunisolar calendars like Hebrew or Chinese, the month code
/// is the previous month's code with with an "L" suffix appended.
/// Examples:
/// * 'M02' => February;
/// * 'M08L' => repeated 8th month in the Chinese calendar;
/// * 'M05L' => Adar I in the Hebrew calendar.
#[wasm_bindgen(method, getter, structural, js_name = monthCode)]
pub fn month_code(this: &PlainDate) -> JsString;
/// day is a positive integer representing the day of the month.
#[wasm_bindgen(method, getter, structural)]
pub fn day(this: &PlainDate) -> u32;
/// In calendars that use eras, the era and eraYear read-only properties can be used
/// together to resolve an era-relative year. Both properties are undefined when using
/// the ISO 8601 calendar. As inputs to from or with, era and eraYear can be used instead
/// of year. Unlike year, eraYear may decrease as time proceeds because some
/// eras (like the BCE era in the Gregorian calendar) count years backwards.
#[wasm_bindgen(method, getter, structural, js_name = eraYear)]
pub fn era_year(this: &PlainDate) -> JsValue;
/// In calendars that use eras, the era and eraYear read-only properties can be used
/// together to resolve an era-relative year. Both properties are undefined when using
/// the ISO 8601 calendar. As inputs to from or with, era and eraYear can be used instead
/// of year. Unlike year, eraYear may decrease as time proceeds because some
/// eras (like the BCE era in the Gregorian calendar) count years backwards.
#[wasm_bindgen(method, getter, structural)]
pub fn era(this: &PlainDate) -> JsValue;
/// The dayOfWeek read-only property gives the weekday number that the date falls
/// on. For the ISO 8601 calendar, the weekday number is defined as in the ISO 8601
/// standard: a value between 1 and 7, inclusive, with Monday being 1, and Sunday 7.
#[wasm_bindgen(method, getter, structural, js_name = dayOfWeek)]
pub fn day_of_week(this: &PlainDate) -> u32;
/// The dayOfYear read-only property gives the ordinal day of the year that the date
/// falls on. For the ISO 8601 calendar, this is a value between 1 and 365, or 366 in
/// a leap year.
#[wasm_bindgen(method, getter, structural, js_name = dayOfYear)]
pub fn day_of_year(this: &PlainDate) -> u32;
/// The weekOfYear read-only property gives the ISO week number of the date. For the
/// ISO 8601 calendar, this is normally a value between 1 and 52, but in a few cases it
/// can be 53 as well. ISO week 1 is the week containing the first Thursday of the year.
#[wasm_bindgen(method, getter, structural, js_name = weekOfYear)]
pub fn week_of_year(this: &PlainDate) -> u32;
/// The daysInWeek read-only property gives the number of days in the week that the
/// date falls in. For the ISO 8601 calendar, this is always 7, but in other calendar
/// systems it may differ from week to week.
#[wasm_bindgen(method, getter, structural, js_name = daysInWeek)]
pub fn days_in_week(this: &PlainDate) -> u32;
/// The daysInMonth read-only property gives the number of days in the month that the
/// date falls in. For the ISO 8601 calendar, this is 28, 29, 30, or 31, depending
/// on the month and whether the year is a leap year.
#[wasm_bindgen(method, getter, structural, js_name = daysInMonth)]
pub fn days_in_month(this: &PlainDate) -> u32;
/// The daysInYear read-only property gives the number of days in the year that the date
/// falls in. For the ISO 8601 calendar, this is 365 or 366, depending on whether the year
/// is a leap year.
#[wasm_bindgen(method, getter, structural, js_name = daysInYear)]
pub fn days_in_year(this: &PlainDate) -> u32;
/// The monthsInYear read-only property gives the number of months in the year that the date
/// falls in. For the ISO 8601 calendar, this is always 12, but in other calendar systems
/// it may differ from year to year.
#[wasm_bindgen(method, getter, structural, js_name = monthsInWeek)]
pub fn months_in_year(this: &PlainDate) -> u32;
/// The inLeapYear read-only property tells whether the year that the date falls in is a
/// leap year or not. Its value is true if the year is a leap year, and false if not.
#[wasm_bindgen(method, getter, structural, js_name = inLeapYear)]
pub fn in_leap_year(this: &PlainDate) -> bool;
/// Returns a new `Temporal.PlainDate` object which is the date indicated by date, projected
/// into calendar.
#[wasm_bindgen(method, js_name = withCalendar)]
pub fn with_calendar(this: &PlainDate, calendar: &str) -> PlainDate;
/// **Parameters:**
///
///- `duration` (`Temporal.Duration` or value convertible to one): The duration to add.
///- `options` (optional object): An object with properties representing options for the addition.
///The following options are recognized:
///- `overflow` (optional string): How to deal with additions that result in out-of-range values.
/// Allowed values are `constrain` and `reject`.
/// The default is `constrain`.
///
///**Returns:** a new `Temporal.PlainDate` object which is the date indicated by `date` plus `duration`.
///
///This method adds `duration` to `date`, returning a date that is in the future relative to `date`.
///
///The `duration` argument is an object with properties denoting a duration, such as `{ days: 5 }`, or a string such as `P5D`, or a `Temporal.Duration` object.
///If `duration` is not a `Temporal.Duration` object, then it will be converted to one as if it were passed to `Temporal.Duration.from()`.
///
///Some additions may be ambiguous, because months have different lengths.
///For example, adding one month to August 31 would result in September 31, which doesn't exist.
///For these cases, the `overflow` option tells what to do:
///
///- In `constrain` mode (the default), out-of-range values are clamped to the nearest in-range value.
///- In `reject` mode, an addition that would result in an out-of-range value fails, and a `RangeError` is thrown.
///
///Additionally, if the result is earlier or later than the range of dates that `Temporal.PlainDate` can represent (approximately half a million years centered on the [Unix epoch](https://en.wikipedia.org/wiki/Unix_time)), then this method will throw a `RangeError` regardless of `overflow`.
///
///Adding a negative duration is equivalent to subtracting the absolute value of that duration.
#[wasm_bindgen(method)]
pub fn add(this: &PlainDate, duration: &Duration, options: &JsValue) -> PlainDate;
/// **Parameters:**
///- `duration` (`Temporal.Duration` or value convertible to one): The duration to subtract.
///- `options` (optional object): An object with properties representing options for the subtraction.
///The following options are recognized:
///- `overflow` (string): How to deal with subtractions that result in out-of-range values.
/// Allowed values are `constrain` and `reject`.
/// The default is `constrain`.
///
///**Returns:** a new `Temporal.PlainDate` object which is the date indicated by `date` minus `duration`.
///
///This method subtracts `duration` from `date`, returning a date that is in the past relative to `date`.
///
///The `duration` argument is an object with properties denoting a duration, such as `{ days: 5 }`, or a string such as `P5D`, or a `Temporal.Duration` object.
///If `duration` is not a `Temporal.Duration` object, then it will be converted to one as if it were passed to `Temporal.Duration.from()`.
///
///Some subtractions may be ambiguous, because months have different lengths.
///For example, subtracting one month from July 31 would result in June 31, which doesn't exist.
///For these cases, the `overflow` option tells what to do:
///
///- In `constrain` mode (the default), out-of-range values are clamped to the nearest in-range value.
///- In `reject` mode, an addition that would result in an out-of-range value fails, and a `RangeError` is thrown.
///
///Additionally, if the result is earlier or later than the range of dates that `Temporal.PlainDate` can represent (approximately half a million years centered on the [Unix epoch](https://en.wikipedia.org/wiki/Unix_time)), then this method will throw a `RangeError` regardless of `overflow`.
///
///Subtracting a negative duration is equivalent to adding the absolute value of that duration.
///
#[wasm_bindgen(method)]
pub fn subtract(this: &PlainDate, duration: &Duration, options: &JsValue) -> PlainDate;
/// This function exists because it's not possible to compare using date == other
/// or date === other, due to ambiguity in the primitive representation and between
/// Temporal types.
///
/// If you don't need to know the order in which the two dates occur, then this function
/// may be less typing and more efficient than Temporal.PlainDate.compare.
///
/// Note that this function will return false if the two objects have different calendar
/// properties, even if the actual dates are equal.
#[wasm_bindgen(method)]
pub fn equals(this: &PlainDate, other: &PlainDate) -> bool;
/// This method overrides the Object.prototype.toString() method and provides a convenient, unambiguous
/// string representation of date. The string can be passed to Temporal.PlainDate.from() to
/// create a new Temporal.PlainDate object.
#[wasm_bindgen(method, js_name = toString)]
pub fn to_string(this: &PlainDate) -> JsString;
/// This method overrides `Object.prototype.toLocaleString()` to provide a human-readable,
/// language-sensitive representation of duration.
///
/// The locales and options arguments are the same as in the constructor to Intl.DateTimeFormat.
#[wasm_bindgen(method, js_name = toLocaleString)]
pub fn to_locale_string(this: &PlainDate, locales: &JsValue, options: &JsValue) -> JsString;
/// Returns: a plain object with properties expressing date in the ISO 8601
/// calendar, as well as the value of date.calendar.
///
/// This method is mainly useful if you are implementing a custom calendar. Most
/// code will not need to use it.
#[wasm_bindgen(method, js_name = getISOFields)]
pub fn get_iso_fields(this: &PlainDate) -> JsValue;
}
pub mod Now {
use super::*;
#[wasm_bindgen]
extern "C" {
#[wasm_bindgen(js_namespace = ["Temporal", "Now"])]
pub fn instant() -> Instant;
#[wasm_bindgen(js_namespace = ["Temporal", "Now"], js_name = zonedDateTime)]
pub fn zoned_date_time(calendar: &str) -> ZonedDateTime;
#[wasm_bindgen(js_namespace = ["Temporal", "Now"], js_name = zonedDateTimeISO)]
pub fn zoned_date_time_iso() -> ZonedDateTime;
#[wasm_bindgen(js_namespace = ["Temporal", "Now"], js_name = plainDate)]
pub fn plain_date(calendar: &str) -> PlainDate;
#[wasm_bindgen(js_namespace = ["Temporal", "Now"], js_name = plainDateISO)]
pub fn plain_date_iso() -> PlainDate;
#[wasm_bindgen(js_namespace = ["Temporal", "Now"], js_name = plainTimeISO)]
pub fn plain_time_iso() -> PlainTime;
}
}