diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index c433202..55f5db3 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -60,7 +60,7 @@ jobs: - name: Setup Zig uses: mlugg/setup-zig@v2 with: - version: 0.17.0-dev.667+0569f1f6a + version: 0.17.0-dev.1398+cb5635714 - name: Setup Rust uses: dtolnay/rust-toolchain@stable diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 95873c8..ee306e5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,7 +22,7 @@ jobs: - name: Setup Zig uses: mlugg/setup-zig@v2 with: - version: 0.17.0-dev.667+0569f1f6a + version: 0.17.0-dev.1398+cb5635714 - name: Build project run: zig build @@ -55,7 +55,7 @@ jobs: - name: Setup Zig uses: mlugg/setup-zig@v2 with: - version: 0.17.0-dev.667+0569f1f6a + version: 0.17.0-dev.1398+cb5635714 - name: Download build artifacts uses: actions/download-artifact@v4 diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index d0eafb9..4c495c9 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -26,7 +26,7 @@ jobs: - name: Setup Zig uses: mlugg/setup-zig@v2 with: - version: 0.17.0-dev.667+0569f1f6a + version: 0.17.0-dev.1398+cb5635714 - name: Setup Pages uses: actions/configure-pages@v5 diff --git a/README.md b/README.md index 634e241..7d468df 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ Temporalz provides Zig bindings to the Rust-based [temporal_rs](https://github.c #### Prerequisites -- Zig 0.17.0-dev.667+0569f1f6a +- Zig 0.17.0-dev.1398+cb5635714 - Rust toolchain (only required if [prebuilt staticlibs](#prebuilt) are not available for your platform) #### Add as a Dependency diff --git a/build.zig.zon b/build.zig.zon index 27ec8fe..f1efea0 100644 --- a/build.zig.zon +++ b/build.zig.zon @@ -2,7 +2,7 @@ .name = .temporalz, .version = "0.2.0", .fingerprint = 0xd8d79d59acc4faae, - .minimum_zig_version = "0.17.0-dev.667+0569f1f6a", + .minimum_zig_version = "0.17.0-dev.1398+cb5635714", .dependencies = .{ .temporal = .{ .path = "pkg/temporal", diff --git a/example/build.zig.zon b/example/build.zig.zon index f61e2aa..ba1bcdf 100644 --- a/example/build.zig.zon +++ b/example/build.zig.zon @@ -2,7 +2,7 @@ .name = .temporalz_example, .version = "0.1.2", .fingerprint = 0x686c9dfc777f9593, - .minimum_zig_version = "0.17.0-dev.667+0569f1f6a", + .minimum_zig_version = "0.17.0-dev.1398+cb5635714", .dependencies = .{ .temporalz = .{ .path = "../", diff --git a/pkg/temporal/build.zig.zon b/pkg/temporal/build.zig.zon index b276c4e..0705c27 100644 --- a/pkg/temporal/build.zig.zon +++ b/pkg/temporal/build.zig.zon @@ -2,7 +2,7 @@ .name = .temporal, .version = "0.2.0", .fingerprint = 0xd5dcf3f41df6b117, - .minimum_zig_version = "0.17.0-dev.667+0569f1f6a", + .minimum_zig_version = "0.17.0-dev.1398+cb5635714", .dependencies = .{ .temporal_rs = .{ .url = "git+https://github.com/boa-dev/temporal?ref=v0.2.3#c003cc92325e19b26f8ee2f85e4a47d98cbcc781", diff --git a/src/Duration.zig b/src/Duration.zig index 6b639c9..9088039 100644 --- a/src/Duration.zig +++ b/src/Duration.zig @@ -82,7 +82,7 @@ pub const CompareOptions = struct { /// Construct a Duration from years, months, weeks, days, hours, minutes, seconds, milliseconds, microseconds, and nanoseconds. /// Equivalent to `Temporal.Duration()` constructor. /// -/// See: [Temporal.Duration.Duration](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/Duration/Duration) +/// See: [Temporal.Duration](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/Duration/Duration) pub fn init( years_val: i64, months_val: i64, @@ -366,8 +366,6 @@ pub fn deinit(self: Duration) void { abi.c.temporal_rs_Duration_destroy(self._inner); } -// --- Helpers ----------------------------------------------------------------- - inline fn handleVoidResult(res: anytype) !void { _ = try abi.extractResult(res); } @@ -378,8 +376,6 @@ fn wrapDuration(res: anytype) !Duration { return .{ ._inner = ptr.? }; } -// --- Aliases and enums ------------------------------------------ - const OptionU8 = abi.c.OptionU8; const OptionU32 = abi.c.OptionU32; const OptionI64 = abi.c.OptionI64; @@ -388,8 +384,6 @@ const Precision = abi.c.Precision; const Unit_option = abi.c.Unit_option; const RoundingMode_option = abi.c.RoundingMode_option; -// --- Tests ------------------------------------------------------------------- - test init { // Create a simple duration: 1 hour, 30 minutes const dur = try Duration.init(0, 0, 0, 0, 1, 30, 0, 0, 0, 0); diff --git a/src/Instant.zig b/src/Instant.zig index 8ec6555..56493c5 100644 --- a/src/Instant.zig +++ b/src/Instant.zig @@ -242,8 +242,6 @@ pub fn deinit(self: Instant) void { abi.c.temporal_rs_Instant_destroy(self._inner); } -// --- Helpers ----------------------------------------------------------------- - fn wrapInstant(res: anytype) !Instant { const ptr = (try abi.extractResult(res)) orelse return abi.TemporalError.Generic; return .{ @@ -281,8 +279,6 @@ fn optsToRounding(opts: ToStringOptions) abi.c.ToStringRoundingOptions { }; } -// --- Tests ------------------------------------------------------------------- - test init { const epoch_ns: i128 = 1_704_067_200_000_000_000; // 2024-01-01T00:00:00Z const inst = try Instant.init(epoch_ns); diff --git a/src/Now.zig b/src/Now.zig index 4e84e7d..3c4f77f 100644 --- a/src/Now.zig +++ b/src/Now.zig @@ -10,7 +10,7 @@ const ZonedDateTime = @import("ZonedDateTime.zig"); /// /// The `Temporal.Now` namespace object contains static methods for getting the current time in various formats. /// -/// - [MDN Temporal.Now](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/Now) +/// See: [Temporal.Now](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/Now) /// /// ## Description /// @@ -30,7 +30,7 @@ const Now = @This(); /// Returns the current time as a [`Temporal.Instant`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/Instant) object. /// -/// See: [MDN Temporal.Now.instant](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/Now/instant) +/// See: [Temporal.Now.instant](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/Now/instant) pub fn instant(io: std.Io) !Instant { const ns = std.Io.Timestamp.now(io, .real).nanoseconds; return Instant.fromEpochNanoseconds(ns); @@ -38,7 +38,7 @@ pub fn instant(io: std.Io) !Instant { /// Returns the current date as a [`Temporal.PlainDate`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainDate) object, in the ISO 8601 calendar and the specified time zone. /// -/// See: [MDN Temporal.Now.plainDateISO](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/Now/plainDateISO) +/// See: [Temporal.Now.plainDateISO](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/Now/plainDateISO) pub fn plainDateISO(io: std.Io) !PlainDate { const now = currentParts(io); return PlainDate.init(now.year, now.month, now.day); @@ -46,7 +46,7 @@ pub fn plainDateISO(io: std.Io) !PlainDate { /// Returns the current date and time as a [`Temporal.PlainDateTime`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainDateTime) object, in the ISO 8601 calendar and the specified time zone. /// -/// See: [MDN Temporal.Now.plainDateTimeISO](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/Now/plainDateTimeISO) +/// See: [Temporal.Now.plainDateTimeISO](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/Now/plainDateTimeISO) pub fn plainDateTimeISO(io: std.Io) !PlainDateTime { const now = currentParts(io); return PlainDateTime.init( @@ -64,7 +64,7 @@ pub fn plainDateTimeISO(io: std.Io) !PlainDateTime { /// Returns the current time as a [`Temporal.PlainTime`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainTime) object, in the specified time zone. /// -/// See: [MDN Temporal.Now.plainTimeISO](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/Now/plainTimeISO) +/// See: [Temporal.Now.plainTimeISO](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/Now/plainTimeISO) pub fn plainTimeISO(io: std.Io) !PlainTime { const now = currentParts(io); return PlainTime.init( @@ -88,14 +88,14 @@ pub fn plainTimeISO(io: std.Io) !PlainTime { /// name to an IANA identifier via the CLDR `windowsZones` table. /// - WASI: no host time zone is available; "UTC" is the only honest answer. /// -/// See: [MDN Temporal.Now.timeZoneId](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/Now/timeZoneId) +/// See: [Temporal.Now.timeZoneId](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/Now/timeZoneId) pub fn timeZoneId(allocator: std.mem.Allocator) ![]const u8 { return allocator.dupe(u8, "UTC"); } /// Returns the current date and time as a [`Temporal.ZonedDateTime`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime) object, in the ISO 8601 calendar and the specified time zone. /// -/// See: [MDN Temporal.Now.zonedDateTimeISO](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/Now/zonedDateTimeISO) +/// See: [Temporal.Now.zonedDateTimeISO](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/Now/zonedDateTimeISO) pub fn zonedDateTimeISO(allocator: std.mem.Allocator, io: std.Io) !ZonedDateTime { const now = try instant(io); const tz_id = try timeZoneId(allocator); @@ -146,7 +146,6 @@ fn currentParts(io: std.Io) CurrentParts { }; } -// ---------- Tests --------------------- test instant { const io = std.testing.io; const inst = try instant(io); diff --git a/src/PlainDateTime.zig b/src/PlainDateTime.zig index 9765de8..935e4e9 100644 --- a/src/PlainDateTime.zig +++ b/src/PlainDateTime.zig @@ -545,7 +545,6 @@ fn wrapPlainDateTime(res: anytype) !PlainDateTime { return .{ ._inner = ptr }; } -// ---------- Tests --------------------- test init { const dt = try PlainDateTime.init(2024, 1, 15, 14, 30, 45, 123, 456, 789); try std.testing.expectEqual(@as(i32, 2024), dt.year()); diff --git a/src/PlainMonthDay.zig b/src/PlainMonthDay.zig index 6e13d44..65098b8 100644 --- a/src/PlainMonthDay.zig +++ b/src/PlainMonthDay.zig @@ -8,7 +8,7 @@ const PlainDate = @import("PlainDate.zig"); /// /// The `Temporal.PlainMonthDay` object represents a month and day in a calendar, with no year or time. /// -/// - [MDN Temporal.PlainMonthDay](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainMonthDay) +/// See: [Temporal.PlainMonthDay](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainMonthDay) const PlainMonthDay = @This(); _inner: *abi.c.PlainMonthDay, @@ -39,7 +39,8 @@ fn wrapPlainMonthDay(result: anytype) !PlainMonthDay { /// Creates a new PlainMonthDay from the given month, day, and optional calendar. /// Equivalent to the Temporal.PlainMonthDay constructor. -/// See [MDN Temporal.PlainMonthDay() constructor](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainMonthDay/PlainMonthDay) +/// +/// See: [Temporal.PlainMonthDay](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainMonthDay/PlainMonthDay) pub fn init(month_val: u8, day_val: u8, calendar: ?[]const u8) !PlainMonthDay { const cal_kind = if (calendar) |cal| blk: { const cal_view = abi.toDiplomatStringView(cal); @@ -60,7 +61,8 @@ pub fn init(month_val: u8, day_val: u8, calendar: ?[]const u8) !PlainMonthDay { } /// Parses a PlainMonthDay from a string. -/// See [MDN Temporal.PlainMonthDay.from()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainMonthDay/from) +/// +/// See: [Temporal.PlainMonthDay.from](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainMonthDay/from) pub fn from(s: []const u8) !PlainMonthDay { return fromUtf8(s); } @@ -77,14 +79,16 @@ fn fromUtf16(utf16: []const u16) !PlainMonthDay { // Comparison /// Returns true if this PlainMonthDay is equal to another (same date and calendar). -/// See [MDN Temporal.PlainMonthDay.prototype.equals()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainMonthDay/equals) +/// +/// See: [Temporal.PlainMonthDay.equals](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainMonthDay/equals) pub fn equals(self: PlainMonthDay, other: PlainMonthDay) bool { return abi.c.temporal_rs_PlainMonthDay_equals(self._inner, other._inner); } // Property accessors /// Returns the calendar identifier used to interpret the internal ISO 8601 date. -/// See [MDN Temporal.PlainMonthDay.prototype.calendarId](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainMonthDay/calendarId) +/// +/// See: [Temporal.PlainMonthDay.calendarId](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainMonthDay/calendarId) pub fn calendarId(self: PlainMonthDay, allocator: std.mem.Allocator) ![]u8 { const calendar_ptr = abi.c.temporal_rs_PlainMonthDay_calendar(self._inner) orelse return error.TemporalError; const cal_id_view = abi.c.temporal_rs_Calendar_identifier(calendar_ptr); @@ -92,13 +96,15 @@ pub fn calendarId(self: PlainMonthDay, allocator: std.mem.Allocator) ![]u8 { } /// Returns the 1-based day index in the month of this date. -/// See [MDN Temporal.PlainMonthDay.prototype.day](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainMonthDay/day) +/// +/// See: [Temporal.PlainMonthDay.day](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainMonthDay/day) pub fn day(self: PlainMonthDay) u8 { return abi.c.temporal_rs_PlainMonthDay_day(self._inner); } /// Returns the calendar-specific string representing the month of this date. -/// See [MDN Temporal.PlainMonthDay.prototype.monthCode](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainMonthDay/monthCode) +/// +/// See: [Temporal.PlainMonthDay.monthCode](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainMonthDay/monthCode) pub fn monthCode(self: PlainMonthDay, allocator: std.mem.Allocator) ![]const u8 { var write = abi.DiplomatWrite.init(allocator); defer write.deinit(); @@ -109,7 +115,8 @@ pub fn monthCode(self: PlainMonthDay, allocator: std.mem.Allocator) ![]const u8 // Modification /// Returns a new PlainMonthDay with some fields replaced by new values. -/// See [MDN Temporal.PlainMonthDay.prototype.with()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainMonthDay/with) +/// +/// See: [Temporal.PlainMonthDay.with](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainMonthDay/with) pub fn with(self: PlainMonthDay, options: WithOptions) !PlainMonthDay { // Build month_code view const month_code_view = if (options.month_code) |mc| @@ -142,7 +149,8 @@ pub fn with(self: PlainMonthDay, options: WithOptions) !PlainMonthDay { // Conversion /// Returns a PlainDate representing this month-day and a supplied year in the same calendar system. -/// See [MDN Temporal.PlainMonthDay.prototype.toPlainDate()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainMonthDay/toPlainDate) +/// +/// See: [Temporal.PlainMonthDay.toPlainDate](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainMonthDay/toPlainDate) pub fn toPlainDate(self: PlainMonthDay, year: i32) !PlainDate { const partial_date = abi.c.PartialDate_option{ .is_ok = true, @@ -167,7 +175,8 @@ pub fn toPlainDate(self: PlainMonthDay, year: i32) !PlainDate { // String conversions /// Returns a string representing this month-day in RFC 9557 format. -/// See [MDN Temporal.PlainMonthDay.prototype.toString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainMonthDay/toString) +/// +/// See: [Temporal.PlainMonthDay.toString](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainMonthDay/toString) pub fn toString(self: PlainMonthDay, allocator: std.mem.Allocator) ![]u8 { return toStringWithOptions(self, allocator, .{}); } @@ -184,26 +193,27 @@ fn toStringWithOptions(self: PlainMonthDay, allocator: std.mem.Allocator, option } /// Returns a string representing this month-day in RFC 9557 format (ISO 8601). -/// See [MDN Temporal.PlainMonthDay.prototype.toJSON()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainMonthDay/toJSON) +/// +/// See: [Temporal.PlainMonthDay.toJSON](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainMonthDay/toJSON) pub fn toJSON(self: PlainMonthDay, allocator: std.mem.Allocator) ![]u8 { return toString(self, allocator); } /// Returns a language-sensitive string representation of this month-day. -/// See [MDN Temporal.PlainMonthDay.prototype.toLocaleString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainMonthDay/toLocaleString) +/// +/// See: [Temporal.PlainMonthDay.toLocaleString](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainMonthDay/toLocaleString) pub fn toLocaleString(self: PlainMonthDay, allocator: std.mem.Allocator) ![]u8 { return toString(self, allocator); } /// Throws an error; valueOf() is not supported for PlainMonthDay. -/// See [MDN Temporal.PlainMonthDay.prototype.valueOf()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainMonthDay/valueOf) +/// +/// See: [Temporal.PlainMonthDay.valueOf](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainMonthDay/valueOf) pub fn valueOf(self: PlainMonthDay) !void { _ = self; return error.ValueError; } -// ---------- Tests --------------------- - test init { const md = try init(12, 25, null); try std.testing.expectEqual(@as(u8, 25), md.day()); diff --git a/src/PlainTime.zig b/src/PlainTime.zig index f5f959f..11a2c43 100644 --- a/src/PlainTime.zig +++ b/src/PlainTime.zig @@ -8,7 +8,7 @@ const Duration = @import("Duration.zig"); /// /// The `Temporal.PlainTime` object represents a wall-clock time, with no date or time zone. /// -/// - [MDN Temporal.PlainTime](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainTime) +/// See: [Temporal.PlainTime](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainTime) const PlainTime = @This(); _inner: *abi.c.PlainTime, @@ -56,7 +56,8 @@ pub fn init( } /// Parses a PlainTime from a string. -/// See [MDN Temporal.PlainTime.from()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainTime/from) +/// +/// See: [Temporal.PlainTime.from](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainTime/from) pub fn from(s: []const u8) !PlainTime { return fromUtf8(s); } @@ -73,31 +74,36 @@ fn fromUtf16(utf16: []const u16) !PlainTime { /// Compares two PlainTime instances by their time values. /// Returns -1, 0, or 1 if the first is before, equal, or after the second. -/// See [MDN Temporal.PlainTime.compare()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainTime/compare) +/// +/// See: [Temporal.PlainTime.compare](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainTime/compare) pub fn compare(a: PlainTime, b: PlainTime) i8 { return abi.c.temporal_rs_PlainTime_compare(a._inner, b._inner); } /// Returns true if this PlainTime is equal to another (same time values). -/// See [MDN Temporal.PlainTime.prototype.equals()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainTime/equals) +/// +/// See: [Temporal.PlainTime.equals](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainTime/equals) pub fn equals(self: PlainTime, other: PlainTime) bool { return abi.c.temporal_rs_PlainTime_equals(self._inner, other._inner); } /// Returns a new PlainTime moved forward by the given duration, wrapping around the clock if necessary. -/// See [MDN Temporal.PlainTime.prototype.add()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainTime/add) +/// +/// See: [Temporal.PlainTime.add](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainTime/add) pub fn add(self: PlainTime, duration: Duration) !PlainTime { return wrapPlainTime(abi.c.temporal_rs_PlainTime_add(self._inner, duration._inner)); } /// Returns a new PlainTime moved backward by the given duration, wrapping around the clock if necessary. -/// See [MDN Temporal.PlainTime.prototype.subtract()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainTime/subtract) +/// +/// See: [Temporal.PlainTime.subtract](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainTime/subtract) pub fn subtract(self: PlainTime, duration: Duration) !PlainTime { return wrapPlainTime(abi.c.temporal_rs_PlainTime_subtract(self._inner, duration._inner)); } /// Returns the duration from this PlainTime to another. -/// See [MDN Temporal.PlainTime.prototype.until()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainTime/until) +/// +/// See: [Temporal.PlainTime.until](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainTime/until) pub fn until(self: PlainTime, other: PlainTime, options: DifferenceSettings) !Duration { const settings = abi.to.diffsettings(options); const result = abi.c.temporal_rs_PlainTime_until(self._inner, other._inner, settings); @@ -106,7 +112,8 @@ pub fn until(self: PlainTime, other: PlainTime, options: DifferenceSettings) !Du } /// Returns the duration from another PlainTime to this one. -/// See [MDN Temporal.PlainTime.prototype.since()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainTime/since) +/// +/// See: [Temporal.PlainTime.since](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainTime/since) pub fn since(self: PlainTime, other: PlainTime, options: DifferenceSettings) !Duration { const settings = abi.to.diffsettings(options); const result = abi.c.temporal_rs_PlainTime_since(self._inner, other._inner, settings); @@ -116,51 +123,59 @@ pub fn since(self: PlainTime, other: PlainTime, options: DifferenceSettings) !Du // Rounding /// Returns a new PlainTime rounded to the given unit and options. -/// See [MDN Temporal.PlainTime.prototype.round()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainTime/round) +/// +/// See: [Temporal.PlainTime.round](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainTime/round) pub fn round(self: PlainTime, options: RoundOptions) !PlainTime { return wrapPlainTime(abi.c.temporal_rs_PlainTime_round(self._inner, abi.to.roundingOpts(options))); } // Property accessors /// Returns the hour component of this time (0-23). -/// See [MDN Temporal.PlainTime.prototype.hour](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainTime/hour) +/// +/// See: [Temporal.PlainTime.hour](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainTime/hour) pub fn hour(self: PlainTime) u8 { return abi.c.temporal_rs_PlainTime_hour(self._inner); } /// Returns the minute component of this time (0-59). -/// See [MDN Temporal.PlainTime.prototype.minute](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainTime/minute) +/// +/// See: [Temporal.PlainTime.minute](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainTime/minute) pub fn minute(self: PlainTime) u8 { return abi.c.temporal_rs_PlainTime_minute(self._inner); } /// Returns the second component of this time (0-59). -/// See [MDN Temporal.PlainTime.prototype.second](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainTime/second) +/// +/// See: [Temporal.PlainTime.second](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainTime/second) pub fn second(self: PlainTime) u8 { return abi.c.temporal_rs_PlainTime_second(self._inner); } /// Returns the millisecond component of this time (0-999). -/// See [MDN Temporal.PlainTime.prototype.millisecond](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainTime/millisecond) +/// +/// See: [Temporal.PlainTime.millisecond](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainTime/millisecond) pub fn millisecond(self: PlainTime) u16 { return abi.c.temporal_rs_PlainTime_millisecond(self._inner); } /// Returns the microsecond component of this time (0-999). -/// See [MDN Temporal.PlainTime.prototype.microsecond](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainTime/microsecond) +/// +/// See: [Temporal.PlainTime.microsecond](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainTime/microsecond) pub fn microsecond(self: PlainTime) u16 { return abi.c.temporal_rs_PlainTime_microsecond(self._inner); } /// Returns the nanosecond component of this time (0-999). -/// See [MDN Temporal.PlainTime.prototype.nanosecond](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainTime/nanosecond) +/// +/// See: [Temporal.PlainTime.nanosecond](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainTime/nanosecond) pub fn nanosecond(self: PlainTime) u16 { return abi.c.temporal_rs_PlainTime_nanosecond(self._inner); } // Modification /// Returns a new PlainTime with some fields replaced by new values. -/// See [MDN Temporal.PlainTime.prototype.with()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainTime/with) +/// +/// See: [Temporal.PlainTime.with](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainTime/with) pub fn with(self: PlainTime, options: WithOptions) !PlainTime { const partial = abi.c.PartialTime{ .hour = abi.toOption(abi.c.OptionU8, options.hour), @@ -179,7 +194,8 @@ pub fn with(self: PlainTime, options: WithOptions) !PlainTime { // String conversions /// Returns a string representing this PlainTime in RFC 9557 format. -/// See [MDN Temporal.PlainTime.prototype.toString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainTime/toString) +/// +/// See: [Temporal.PlainTime.toString](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainTime/toString) pub fn toString(self: PlainTime, allocator: std.mem.Allocator) ![]u8 { return toStringWithOptions(self, allocator, .{}); } @@ -201,28 +217,29 @@ fn toStringWithOptions(self: PlainTime, allocator: std.mem.Allocator, options: t } /// Returns a string representing this PlainTime in RFC 9557 format (ISO 8601). -/// See [MDN Temporal.PlainTime.prototype.toJSON()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainTime/toJSON) +/// +/// See: [Temporal.PlainTime.toJSON](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainTime/toJSON) pub fn toJSON(self: PlainTime, allocator: std.mem.Allocator) ![]u8 { return toString(self, allocator); } /// Returns a language-sensitive string representation of this PlainTime. -/// See [MDN Temporal.PlainTime.prototype.toLocaleString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainTime/toLocaleString) +/// +/// See: [Temporal.PlainTime.toLocaleString](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainTime/toLocaleString) pub fn toLocaleString(self: PlainTime, allocator: std.mem.Allocator) ![]u8 { // For now, just use toString - locale-specific formatting would require more work return toString(self, allocator); } /// Throws an error; valueOf() is not supported for PlainTime. -/// See [MDN Temporal.PlainTime.prototype.valueOf()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainTime/valueOf) +/// +/// See: [Temporal.PlainTime.valueOf](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainTime/valueOf) pub fn valueOf(self: PlainTime) !void { _ = self; // PlainTime should not be used in arithmetic/comparison operations implicitly return error.ValueError; } -// ---------- Tests --------------------- - test init { { const time = try init(14, 30, 45, 123, 456, 789); diff --git a/src/PlainYearMonth.zig b/src/PlainYearMonth.zig index b9af1f1..60c36a0 100644 --- a/src/PlainYearMonth.zig +++ b/src/PlainYearMonth.zig @@ -9,7 +9,7 @@ const Duration = @import("Duration.zig"); /// /// The `Temporal.PlainYearMonth` object represents a particular month in a specific year, with no day or time. /// -/// - [MDN Temporal.PlainYearMonth](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainYearMonth) +/// See: [Temporal.PlainYearMonth](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainYearMonth) const PlainYearMonth = @This(); _inner: *abi.c.PlainYearMonth, @@ -47,7 +47,8 @@ fn wrapPlainYearMonth(result: anytype) !PlainYearMonth { /// Creates a new PlainYearMonth from the given year, month, and optional calendar. /// Equivalent to the Temporal.PlainYearMonth constructor. -/// See [MDN Temporal.PlainYearMonth() constructor](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainYearMonth/PlainYearMonth) +/// +/// See: [Temporal.PlainYearMonth](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainYearMonth/PlainYearMonth) pub fn init(year_val: i32, month_val: u8, calendar: ?[]const u8) !PlainYearMonth { const cal_kind = if (calendar) |cal| blk: { const cal_view = abi.toDiplomatStringView(cal); @@ -68,7 +69,8 @@ pub fn init(year_val: i32, month_val: u8, calendar: ?[]const u8) !PlainYearMonth } /// Parses a PlainYearMonth from a string. -/// See [MDN Temporal.PlainYearMonth.from()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainYearMonth/from) +/// +/// See: [Temporal.PlainYearMonth.from](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainYearMonth/from) pub fn from(s: []const u8) !PlainYearMonth { return fromUtf8(s); } @@ -86,34 +88,39 @@ fn fromUtf16(utf16: []const u16) !PlainYearMonth { // Comparison /// Compares two PlainYearMonth instances by their ISO date values. /// Returns -1, 0, or 1 if the first is before, equal, or after the second. -/// See [MDN Temporal.PlainYearMonth.compare()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainYearMonth/compare) +/// +/// See: [Temporal.PlainYearMonth.compare](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainYearMonth/compare) pub fn compare(a: PlainYearMonth, b: PlainYearMonth) i8 { return abi.c.temporal_rs_PlainYearMonth_compare(a._inner, b._inner); } /// Returns true if this PlainYearMonth is equal to another (same ISO date and calendar). -/// See [MDN Temporal.PlainYearMonth.prototype.equals()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainYearMonth/equals) +/// +/// See: [Temporal.PlainYearMonth.equals](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainYearMonth/equals) pub fn equals(self: PlainYearMonth, other: PlainYearMonth) bool { return abi.c.temporal_rs_PlainYearMonth_equals(self._inner, other._inner); } // Arithmetic /// Returns a new PlainYearMonth moved forward by the given duration. -/// See [MDN Temporal.PlainYearMonth.prototype.add()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainYearMonth/add) +/// +/// See: [Temporal.PlainYearMonth.add](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainYearMonth/add) pub fn add(self: PlainYearMonth, duration: Duration) !PlainYearMonth { const overflow = abi.c.ArithmeticOverflow_Constrain; return wrapPlainYearMonth(abi.c.temporal_rs_PlainYearMonth_add(self._inner, duration._inner, overflow)); } /// Returns a new PlainYearMonth moved backward by the given duration. -/// See [MDN Temporal.PlainYearMonth.prototype.subtract()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainYearMonth/subtract) +/// +/// See: [Temporal.PlainYearMonth.subtract](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainYearMonth/subtract) pub fn subtract(self: PlainYearMonth, duration: Duration) !PlainYearMonth { const overflow = abi.c.ArithmeticOverflow_Constrain; return wrapPlainYearMonth(abi.c.temporal_rs_PlainYearMonth_subtract(self._inner, duration._inner, overflow)); } /// Returns the duration from this PlainYearMonth to another. -/// See [MDN Temporal.PlainYearMonth.prototype.until()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainYearMonth/until) +/// +/// See: [Temporal.PlainYearMonth.until](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainYearMonth/until) pub fn until(self: PlainYearMonth, other: PlainYearMonth, options: DifferenceSettings) !Duration { const settings = abi.to.diffsettings(options); const result = abi.c.temporal_rs_PlainYearMonth_until(self._inner, other._inner, settings); @@ -122,7 +129,8 @@ pub fn until(self: PlainYearMonth, other: PlainYearMonth, options: DifferenceSet } /// Returns the duration from another PlainYearMonth to this one. -/// See [MDN Temporal.PlainYearMonth.prototype.since()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainYearMonth/since) +/// +/// See: [Temporal.PlainYearMonth.since](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainYearMonth/since) pub fn since(self: PlainYearMonth, other: PlainYearMonth, options: DifferenceSettings) !Duration { const settings = abi.to.diffsettings(options); const result = abi.c.temporal_rs_PlainYearMonth_since(self._inner, other._inner, settings); @@ -132,7 +140,8 @@ pub fn since(self: PlainYearMonth, other: PlainYearMonth, options: DifferenceSet // Property accessors /// Returns the calendar identifier used to interpret the internal ISO 8601 date. -/// See [MDN Temporal.PlainYearMonth.prototype.calendarId](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainYearMonth/calendarId) +/// +/// See: [Temporal.PlainYearMonth.calendarId](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainYearMonth/calendarId) pub fn calendarId(self: PlainYearMonth, allocator: std.mem.Allocator) ![]u8 { const calendar_ptr = abi.c.temporal_rs_PlainYearMonth_calendar(self._inner) orelse return error.TemporalError; const cal_id_view = abi.c.temporal_rs_Calendar_identifier(calendar_ptr); @@ -140,19 +149,22 @@ pub fn calendarId(self: PlainYearMonth, allocator: std.mem.Allocator) ![]u8 { } /// Returns the year of this year-month relative to the calendar's epoch. -/// See [MDN Temporal.PlainYearMonth.prototype.year](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainYearMonth/year) +/// +/// See: [Temporal.PlainYearMonth.year](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainYearMonth/year) pub fn year(self: PlainYearMonth) i32 { return abi.c.temporal_rs_PlainYearMonth_year(self._inner); } /// Returns the 1-based month index in the year of this year-month. -/// See [MDN Temporal.PlainYearMonth.prototype.month](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainYearMonth/month) +/// +/// See: [Temporal.PlainYearMonth.month](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainYearMonth/month) pub fn month(self: PlainYearMonth) u8 { return abi.c.temporal_rs_PlainYearMonth_month(self._inner); } /// Returns the calendar-specific string representing the month of this year-month. -/// See [MDN Temporal.PlainYearMonth.prototype.monthCode](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainYearMonth/monthCode) +/// +/// See: [Temporal.PlainYearMonth.monthCode](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainYearMonth/monthCode) pub fn monthCode(self: PlainYearMonth, allocator: std.mem.Allocator) ![]const u8 { var write = abi.DiplomatWrite.init(allocator); defer write.deinit(); @@ -162,31 +174,36 @@ pub fn monthCode(self: PlainYearMonth, allocator: std.mem.Allocator) ![]const u8 } /// Returns the number of days in the month of this year-month. -/// See [MDN Temporal.PlainYearMonth.prototype.daysInMonth](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainYearMonth/daysInMonth) +/// +/// See: [Temporal.PlainYearMonth.daysInMonth](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainYearMonth/daysInMonth) pub fn daysInMonth(self: PlainYearMonth) u16 { return abi.c.temporal_rs_PlainYearMonth_days_in_month(self._inner); } /// Returns the number of days in the year of this year-month. -/// See [MDN Temporal.PlainYearMonth.prototype.daysInYear](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainYearMonth/daysInYear) +/// +/// See: [Temporal.PlainYearMonth.daysInYear](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainYearMonth/daysInYear) pub fn daysInYear(self: PlainYearMonth) u16 { return abi.c.temporal_rs_PlainYearMonth_days_in_year(self._inner); } /// Returns the number of months in the year of this year-month. -/// See [MDN Temporal.PlainYearMonth.prototype.monthsInYear](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainYearMonth/monthsInYear) +/// +/// See: [Temporal.PlainYearMonth.monthsInYear](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainYearMonth/monthsInYear) pub fn monthsInYear(self: PlainYearMonth) u16 { return abi.c.temporal_rs_PlainYearMonth_months_in_year(self._inner); } /// Returns true if this year-month is in a leap year. -/// See [MDN Temporal.PlainYearMonth.prototype.inLeapYear](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainYearMonth/inLeapYear) +/// +/// See: [Temporal.PlainYearMonth.inLeapYear](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainYearMonth/inLeapYear) pub fn inLeapYear(self: PlainYearMonth) bool { return abi.c.temporal_rs_PlainYearMonth_in_leap_year(self._inner); } /// Returns the calendar-specific era of this year-month, or null if not applicable. -/// See [MDN Temporal.PlainYearMonth.prototype.era](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainYearMonth/era) +/// +/// See: [Temporal.PlainYearMonth.era](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainYearMonth/era) pub fn era(self: PlainYearMonth, allocator: std.mem.Allocator) !?[]const u8 { var write = abi.DiplomatWrite.init(allocator); defer write.deinit(); @@ -198,7 +215,8 @@ pub fn era(self: PlainYearMonth, allocator: std.mem.Allocator) !?[]const u8 { } /// Returns the year of this year-month within the era, or null if not applicable. -/// See [MDN Temporal.PlainYearMonth.prototype.eraYear](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainYearMonth/eraYear) +/// +/// See: [Temporal.PlainYearMonth.eraYear](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainYearMonth/eraYear) pub fn eraYear(self: PlainYearMonth) ?i32 { const result = abi.c.temporal_rs_PlainYearMonth_era_year(self._inner); if (!result.is_ok) return null; @@ -207,7 +225,8 @@ pub fn eraYear(self: PlainYearMonth) ?i32 { // Modification /// Returns a new PlainYearMonth with some fields replaced by new values. -/// See [MDN Temporal.PlainYearMonth.prototype.with()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainYearMonth/with) +/// +/// See: [Temporal.PlainYearMonth.with](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainYearMonth/with) pub fn with(self: PlainYearMonth, options: WithOptions) !PlainYearMonth { // Build month_code view const month_code_view = if (options.month_code) |mc| @@ -240,7 +259,8 @@ pub fn with(self: PlainYearMonth, options: WithOptions) !PlainYearMonth { // Conversion /// Returns a PlainDate representing this year-month and a supplied day in the same calendar system. -/// See [MDN Temporal.PlainYearMonth.prototype.toPlainDate()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainYearMonth/toPlainDate) +/// +/// See: [Temporal.PlainYearMonth.toPlainDate](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainYearMonth/toPlainDate) pub fn toPlainDate(self: PlainYearMonth, day: u8) !PlainDate { const partial_date = abi.c.PartialDate_option{ .is_ok = true, @@ -265,7 +285,8 @@ pub fn toPlainDate(self: PlainYearMonth, day: u8) !PlainDate { // String conversions /// Returns a string representing this year-month in RFC 9557 format. -/// See [MDN Temporal.PlainYearMonth.prototype.toString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainYearMonth/toString) +/// +/// See: [Temporal.PlainYearMonth.toString](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainYearMonth/toString) pub fn toString(self: PlainYearMonth, allocator: std.mem.Allocator) ![]u8 { return toStringWithOptions(self, allocator, .{}); } @@ -282,26 +303,27 @@ fn toStringWithOptions(self: PlainYearMonth, allocator: std.mem.Allocator, optio } /// Returns a JSON string representing this year-month. -/// See [MDN Temporal.PlainYearMonth.prototype.toJSON()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainYearMonth/toJSON) +/// +/// See: [Temporal.PlainYearMonth.toJSON](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainYearMonth/toJSON) pub fn toJSON(self: PlainYearMonth, allocator: std.mem.Allocator) ![]u8 { return toString(self, allocator); } /// Returns a locale-sensitive string representing this year-month. -/// See [MDN Temporal.PlainYearMonth.prototype.toLocaleString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainYearMonth/toLocaleString) +/// +/// See: [Temporal.PlainYearMonth.toLocaleString](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainYearMonth/toLocaleString) pub fn toLocaleString(self: PlainYearMonth, allocator: std.mem.Allocator) ![]u8 { return toString(self, allocator); } /// Throws a TypeError, as PlainYearMonth objects cannot be converted to primitive values. -/// See [MDN Temporal.PlainYearMonth.prototype.valueOf()](https://developer.mozilla +/// +/// See: [Temporal.PlainYearMonth.valueOf](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainYearMonth/valueOf) pub fn valueOf(self: PlainYearMonth) !void { _ = self; return error.ValueError; } -// ---------- Tests --------------------- - test init { const ym = try init(2024, 12, null); try std.testing.expectEqual(@as(i32, 2024), ym.year()); diff --git a/src/ZonedDateTime.zig b/src/ZonedDateTime.zig index ee3bd7c..b741b57 100644 --- a/src/ZonedDateTime.zig +++ b/src/ZonedDateTime.zig @@ -13,27 +13,21 @@ const ZonedDateTime = @This(); _inner: *abi.c.ZonedDateTime, /// The unit of time used for rounding and difference calculations. -/// See [MDN Temporal.ZonedDateTime](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime) for details. pub const Unit = t.Unit; /// The rounding mode used for rounding operations. -/// See [MDN Temporal.ZonedDateTime](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime) for details. pub const RoundingMode = t.RoundingMode; /// The sign of a duration or difference. -/// See [MDN Temporal.ZonedDateTime](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime) for details. pub const Sign = t.Sign; /// Options for difference calculations between ZonedDateTime instances. -/// See [MDN Temporal.ZonedDateTime#instance_methods](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime#instance_methods) for details. pub const DifferenceSettings = t.DifferenceSettings; /// Options for rounding ZonedDateTime instances. -/// See [MDN Temporal.ZonedDateTime#instance_methods](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime#instance_methods) for details. pub const RoundOptions = t.RoundingOptions; /// Represents a time zone, identified by an IANA time zone identifier or a fixed offset. -/// See [MDN Temporal.ZonedDateTime#time-zones-and-offsets](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime#time-zones-and-offsets). pub const TimeZone = struct { _inner: abi.c.TimeZone, @@ -47,7 +41,6 @@ pub const TimeZone = struct { }; /// Disambiguation options for resolving ambiguous local times (e.g., during DST transitions). -/// See [MDN Temporal.ZonedDateTime#ambiguity-and-gaps-from-local-time-to-utc-time](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime#ambiguity-and-gaps-from-local-time-to-utc-time). pub const Disambiguation = enum { compatible, earlier, @@ -56,7 +49,6 @@ pub const Disambiguation = enum { }; /// Options for resolving offset ambiguity when parsing ZonedDateTime from a string. -/// See [MDN Temporal.ZonedDateTime#offset-ambiguity](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime#offset-ambiguity). pub const OffsetDisambiguation = enum { use_offset, prefer_offset, @@ -65,7 +57,6 @@ pub const OffsetDisambiguation = enum { }; /// Controls how the calendar is displayed in string output. -/// See [MDN Temporal.ZonedDateTime#rfc-9557-format](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime#rfc-9557-format). pub const CalendarDisplay = enum { auto, always, @@ -74,14 +65,12 @@ pub const CalendarDisplay = enum { }; /// Controls how the offset is displayed in string output. -/// See [MDN Temporal.ZonedDateTime#rfc-9557-format](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime#rfc-9557-format). pub const DisplayOffset = enum { auto, never, }; /// Controls how the time zone is displayed in string output. -/// See [MDN Temporal.ZonedDateTime#rfc-9557-format](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime#rfc-9557-format). pub const DisplayTimeZone = enum { auto, never, @@ -89,7 +78,8 @@ pub const DisplayTimeZone = enum { }; /// Options for formatting ZonedDateTime as a string. -/// See [MDN Temporal.ZonedDateTime#rfc-9557-format](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime#rfc-9557-format). +/// +/// See: [Temporal.ZonedDateTime.toString](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/toString#parameters) pub const ToStringOptions = struct { fractional_second_digits: ?u8 = null, smallest_unit: ?Unit = null, @@ -100,6 +90,8 @@ pub const ToStringOptions = struct { }; /// Options for `with()` method. +/// +/// See: [Temporal.ZonedDateTime.with](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/with#parameters) pub const WithOptions = struct { year: ?i32 = null, month: ?u8 = null, @@ -117,35 +109,29 @@ pub const WithOptions = struct { time_zone: ?TimeZone = null, }; -/// Helper function to wrap a C API result into a ZonedDateTime -fn wrapZonedDateTime(result: anytype) !ZonedDateTime { - const ptr = (try abi.extractResult(result)) orelse return abi.TemporalError.Generic; - return .{ ._inner = ptr }; -} - /// Creates a new ZonedDateTime from the given epoch nanoseconds and time zone. /// Equivalent to the Temporal.ZonedDateTime constructor. -/// See [MDN Temporal.ZonedDateTime() constructor](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/ZonedDateTime) +/// +/// See: [Temporal.ZonedDateTime](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/ZonedDateTime) pub fn init(epoch_ns: i128, time_zone: TimeZone) !ZonedDateTime { const ns_parts = abi.toI128Nanoseconds(epoch_ns); return wrapZonedDateTime(abi.c.temporal_rs_ZonedDateTime_from_epoch_nanoseconds(ns_parts, abi.to.toTimeZone(time_zone))); } /// Creates a new ZonedDateTime from the given epoch milliseconds and time zone. -/// See [MDN Temporal.ZonedDateTime](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime) pub fn fromEpochMilliseconds(epoch_ms: i64, time_zone: TimeZone) !ZonedDateTime { return wrapZonedDateTime(abi.c.temporal_rs_ZonedDateTime_from_epoch_milliseconds(epoch_ms, abi.to.toTimeZone(time_zone))); } /// Creates a new ZonedDateTime from the given epoch nanoseconds and time zone. -/// See [MDN Temporal.ZonedDateTime](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime) pub fn fromEpochNanoseconds(epoch_ns: i128, time_zone: TimeZone) !ZonedDateTime { const ns_parts = abi.toI128Nanoseconds(epoch_ns); return wrapZonedDateTime(abi.c.temporal_rs_ZonedDateTime_from_epoch_nanoseconds(ns_parts, abi.to.toTimeZone(time_zone))); } /// Parses a ZonedDateTime from a string, with optional disambiguation and offset options. -/// See [MDN Temporal.ZonedDateTime.from()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/from) +/// +/// See: [Temporal.ZonedDateTime.from](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/from) pub fn from(s: []const u8, time_zone: ?TimeZone, disambiguation: Disambiguation, offset_disambiguation: OffsetDisambiguation) !ZonedDateTime { _ = time_zone; // The time zone is parsed from the string const view = abi.toDiplomatStringView(s); @@ -154,26 +140,30 @@ pub fn from(s: []const u8, time_zone: ?TimeZone, disambiguation: Disambiguation, /// Compares two ZonedDateTime instances by their instant values. /// Returns -1, 0, or 1 if the first is before, equal, or after the second. -/// See [MDN Temporal.ZonedDateTime.compare()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/compare) +/// +/// See: [Temporal.ZonedDateTime.compare](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/compare) pub fn compare(a: ZonedDateTime, b: ZonedDateTime) i8 { return abi.c.temporal_rs_ZonedDateTime_compare_instant(a._inner, b._inner); } /// Returns a new ZonedDateTime moved forward by the given duration. -/// See [MDN Temporal.ZonedDateTime.prototype.add()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/add) +/// +/// See: [Temporal.ZonedDateTime.add](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/add) pub fn add(self: ZonedDateTime, duration: Duration) !ZonedDateTime { const overflow_opt = abi.toOption(abi.c.ArithmeticOverflow_option, null); return wrapZonedDateTime(abi.c.temporal_rs_ZonedDateTime_add(self._inner, duration._inner, overflow_opt)); } /// Returns true if this ZonedDateTime is equal to another (same instant, time zone, and calendar). -/// See [MDN Temporal.ZonedDateTime.prototype.equals()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/equals) +/// +/// See: [Temporal.ZonedDateTime.equals](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/equals) pub fn equals(self: ZonedDateTime, other: ZonedDateTime) bool { return abi.c.temporal_rs_ZonedDateTime_equals(self._inner, other._inner); } /// Returns the first instant after or before this instant at which the time zone's UTC offset changes, or null if none. -/// See [MDN Temporal.ZonedDateTime.prototype.getTimeZoneTransition()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/getTimeZoneTransition) +/// +/// See: [Temporal.ZonedDateTime.getTimeZoneTransition](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/getTimeZoneTransition) pub fn getTimeZoneTransition(self: ZonedDateTime, direction: enum { next, previous }) !?ZonedDateTime { const dir = switch (direction) { .next => abi.c.TransitionDirection_Next, @@ -188,13 +178,15 @@ pub fn getTimeZoneTransition(self: ZonedDateTime, direction: enum { next, previo } /// Returns a new ZonedDateTime rounded to the given unit and options. -/// See [MDN Temporal.ZonedDateTime.prototype.round()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/round) +/// +/// See: [Temporal.ZonedDateTime.round](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/round) pub fn round(self: ZonedDateTime, options: RoundOptions) !ZonedDateTime { return wrapZonedDateTime(abi.c.temporal_rs_ZonedDateTime_round(self._inner, abi.to.roundingOpts(options))); } /// Returns the duration from another ZonedDateTime to this one. -/// See [MDN Temporal.ZonedDateTime.prototype.since()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/since) +/// +/// See: [Temporal.ZonedDateTime.since](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/since) pub fn since(self: ZonedDateTime, other: ZonedDateTime, settings: DifferenceSettings) !Duration { const ptr = try abi.extractResult(abi.c.temporal_rs_ZonedDateTime_since(self._inner, other._inner, abi.to.diffsettings(settings))); if (ptr == null) return error.TemporalError; @@ -202,60 +194,69 @@ pub fn since(self: ZonedDateTime, other: ZonedDateTime, settings: DifferenceSett } /// Returns a ZonedDateTime representing the start of the day in the time zone. -/// See [MDN Temporal.ZonedDateTime.prototype.startOfDay()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/startOfDay) +/// +/// See: [Temporal.ZonedDateTime.startOfDay](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/startOfDay) pub fn startOfDay(self: ZonedDateTime) !ZonedDateTime { return wrapZonedDateTime(abi.c.temporal_rs_ZonedDateTime_start_of_day(self._inner)); } /// Returns a new ZonedDateTime moved backward by the given duration. -/// See [MDN Temporal.ZonedDateTime.prototype.subtract()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/subtract) +/// +/// See: [Temporal.ZonedDateTime.subtract](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/subtract) pub fn subtract(self: ZonedDateTime, duration: Duration) !ZonedDateTime { const overflow_opt = abi.toOption(abi.c.ArithmeticOverflow_option, null); return wrapZonedDateTime(abi.c.temporal_rs_ZonedDateTime_subtract(self._inner, duration._inner, overflow_opt)); } /// Returns a new Instant representing the same instant as this ZonedDateTime. -/// See [MDN Temporal.ZonedDateTime.prototype.toInstant()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/toInstant) +/// +/// See: [Temporal.ZonedDateTime.toInstant](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/toInstant) pub fn toInstant(self: ZonedDateTime) !Instant { const instant_ptr = abi.c.temporal_rs_ZonedDateTime_to_instant(self._inner) orelse return error.TemporalError; return .{ ._inner = instant_ptr }; } /// Returns a string representing this ZonedDateTime in RFC 9557 format (ISO 8601 with time zone). -/// See [MDN Temporal.ZonedDateTime.prototype.toJSON()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/toJSON) +/// +/// See: [Temporal.ZonedDateTime.toJSON](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/toJSON) pub fn toJSON(self: ZonedDateTime, allocator: std.mem.Allocator) ![]u8 { return self.toString(allocator, .{}); } /// Returns a language-sensitive string representation of this ZonedDateTime. -/// See [MDN Temporal.ZonedDateTime.prototype.toLocaleString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/toLocaleString) +/// +/// See: [Temporal.ZonedDateTime.toLocaleString](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/toLocaleString) pub fn toLocaleString(self: ZonedDateTime, allocator: std.mem.Allocator) ![]u8 { return self.toString(allocator, .{}); } /// Returns a PlainDate representing the date portion of this ZonedDateTime. -/// See [MDN Temporal.ZonedDateTime.prototype.toPlainDate()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/toPlainDate) +/// +/// See: [Temporal.ZonedDateTime.toPlainDate](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/toPlainDate) pub fn toPlainDate(self: ZonedDateTime) !PlainDate { const ptr = abi.c.temporal_rs_ZonedDateTime_to_plain_date(self._inner) orelse return error.TemporalError; return .{ ._inner = ptr }; } /// Returns a PlainDateTime representing the date and time portions of this ZonedDateTime. -/// See [MDN Temporal.ZonedDateTime.prototype.toPlainDateTime()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/toPlainDateTime) +/// +/// See: [Temporal.ZonedDateTime.toPlainDateTime](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/toPlainDateTime) pub fn toPlainDateTime(self: ZonedDateTime) !PlainDateTime { const ptr = abi.c.temporal_rs_ZonedDateTime_to_plain_datetime(self._inner) orelse return error.TemporalError; return .{ ._inner = ptr }; } /// Returns a PlainTime representing the time portion of this ZonedDateTime. -/// See [MDN Temporal.ZonedDateTime.prototype.toPlainTime()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/toPlainTime) +/// +/// See: [Temporal.ZonedDateTime.toPlainTime](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/toPlainTime) pub fn toPlainTime(self: ZonedDateTime) !PlainTime { const ptr = abi.c.temporal_rs_ZonedDateTime_to_plain_time(self._inner) orelse return error.TemporalError; return .{ ._inner = ptr }; } /// Returns a string representing this ZonedDateTime in RFC 9557 format, with options for formatting. -/// See [MDN Temporal.ZonedDateTime.prototype.toString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/toString) +/// +/// See: [Temporal.ZonedDateTime.toString](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/toString) pub fn toString(self: ZonedDateTime, allocator: std.mem.Allocator, opts: ToStringOptions) ![]u8 { var write = abi.DiplomatWrite.init(allocator); defer write.deinit(); @@ -274,7 +275,8 @@ pub fn toString(self: ZonedDateTime, allocator: std.mem.Allocator, opts: ToStrin } /// Returns the duration from this ZonedDateTime to another. -/// See [MDN Temporal.ZonedDateTime.prototype.until()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/until) +/// +/// See: [Temporal.ZonedDateTime.until](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/until) pub fn until(self: ZonedDateTime, other: ZonedDateTime, settings: DifferenceSettings) !Duration { const ptr = try abi.extractResult(abi.c.temporal_rs_ZonedDateTime_until(self._inner, other._inner, abi.to.diffsettings(settings))); if (ptr == null) return error.TemporalError; @@ -282,7 +284,8 @@ pub fn until(self: ZonedDateTime, other: ZonedDateTime, settings: DifferenceSett } /// Throws an error; valueOf() is not supported for ZonedDateTime. -/// See [MDN Temporal.ZonedDateTime.prototype.valueOf()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/valueOf) +/// +/// See: [Temporal.ZonedDateTime.valueOf](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/valueOf) pub fn valueOf(_: ZonedDateTime) !void { return error.ValueOfNotSupported; } @@ -309,7 +312,8 @@ pub fn with(self: ZonedDateTime, allocator: std.mem.Allocator, fields: anytype) } /// Returns a new ZonedDateTime interpreted in the new calendar system. -/// See [MDN Temporal.ZonedDateTime.prototype.withCalendar()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/withCalendar) +/// +/// See: [Temporal.ZonedDateTime.withCalendar](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/withCalendar) pub fn withCalendar(self: ZonedDateTime, calendar: []const u8) !ZonedDateTime { const cal_view = abi.toDiplomatStringView(calendar); const cal_result = abi.c.temporal_rs_AnyCalendarKind_parse_temporal_calendar_string(cal_view); @@ -320,21 +324,24 @@ pub fn withCalendar(self: ZonedDateTime, calendar: []const u8) !ZonedDateTime { } /// Returns a new ZonedDateTime with the time part replaced by the new time. -/// See [MDN Temporal.ZonedDateTime.prototype.withPlainTime()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/withPlainTime) +/// +/// See: [Temporal.ZonedDateTime.withPlainTime](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/withPlainTime) pub fn withPlainTime(self: ZonedDateTime, time: ?PlainTime) !ZonedDateTime { const time_ptr = if (time) |tt| tt._inner else null; return wrapZonedDateTime(abi.c.temporal_rs_ZonedDateTime_with_plain_time(self._inner, time_ptr)); } /// Returns a new ZonedDateTime representing the same instant in a new time zone. -/// See [MDN Temporal.ZonedDateTime.prototype.withTimeZone()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/withTimeZone) +/// +/// See: [Temporal.ZonedDateTime.withTimeZone](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/withTimeZone) pub fn withTimeZone(self: ZonedDateTime, time_zone: TimeZone) !ZonedDateTime { return wrapZonedDateTime(abi.c.temporal_rs_ZonedDateTime_with_timezone(self._inner, abi.to.toTimeZone(time_zone))); } // Property accessors /// Returns the calendar identifier used to interpret the internal ISO 8601 date. -/// See [MDN Temporal.ZonedDateTime.prototype.calendarId](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/calendarId) +/// +/// See: [Temporal.ZonedDateTime.calendarId](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/calendarId) pub fn calendarId(self: ZonedDateTime, allocator: std.mem.Allocator) ![]u8 { const calendar_ptr = abi.c.temporal_rs_ZonedDateTime_calendar(self._inner) orelse return error.TemporalError; const cal_id_view = abi.c.temporal_rs_Calendar_identifier(calendar_ptr); @@ -342,56 +349,65 @@ pub fn calendarId(self: ZonedDateTime, allocator: std.mem.Allocator) ![]u8 { } /// Returns the 1-based day index in the month of this date. -/// See [MDN Temporal.ZonedDateTime.prototype.day](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/day) +/// +/// See: [Temporal.ZonedDateTime.day](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/day) pub fn day(self: ZonedDateTime) u8 { return abi.c.temporal_rs_ZonedDateTime_day(self._inner); } /// Returns the 1-based day index in the week of this date. -/// See [MDN Temporal.ZonedDateTime.prototype.dayOfWeek](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/dayOfWeek) +/// +/// See: [Temporal.ZonedDateTime.dayOfWeek](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/dayOfWeek) pub fn dayOfWeek(self: ZonedDateTime) u16 { return abi.c.temporal_rs_ZonedDateTime_day_of_week(self._inner); } /// Returns the 1-based day index in the year of this date. -/// See [MDN Temporal.ZonedDateTime.prototype.dayOfYear](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/dayOfYear) +/// +/// See: [Temporal.ZonedDateTime.dayOfYear](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/dayOfYear) pub fn dayOfYear(self: ZonedDateTime) u16 { return abi.c.temporal_rs_ZonedDateTime_day_of_year(self._inner); } /// Returns the number of days in the month of this date. -/// See [MDN Temporal.ZonedDateTime.prototype.daysInMonth](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/daysInMonth) +/// +/// See: [Temporal.ZonedDateTime.daysInMonth](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/daysInMonth) pub fn daysInMonth(self: ZonedDateTime) u16 { return abi.c.temporal_rs_ZonedDateTime_days_in_month(self._inner); } /// Returns the number of days in the week of this date. -/// See [MDN Temporal.ZonedDateTime.prototype.daysInWeek](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/daysInWeek) +/// +/// See: [Temporal.ZonedDateTime.daysInWeek](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/daysInWeek) pub fn daysInWeek(self: ZonedDateTime) u16 { return abi.c.temporal_rs_ZonedDateTime_days_in_week(self._inner); } /// Returns the number of days in the year of this date. -/// See [MDN Temporal.ZonedDateTime.prototype.daysInYear](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/daysInYear) +/// +/// See: [Temporal.ZonedDateTime.daysInYear](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/daysInYear) pub fn daysInYear(self: ZonedDateTime) u16 { return abi.c.temporal_rs_ZonedDateTime_days_in_year(self._inner); } /// Returns the number of milliseconds since the Unix epoch to this instant. -/// See [MDN Temporal.ZonedDateTime.prototype.epochMilliseconds](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/epochMilliseconds) +/// +/// See: [Temporal.ZonedDateTime.epochMilliseconds](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/epochMilliseconds) pub fn epochMilliseconds(self: ZonedDateTime) i64 { return abi.c.temporal_rs_ZonedDateTime_epoch_milliseconds(self._inner); } /// Returns the number of nanoseconds since the Unix epoch to this instant. -/// See [MDN Temporal.ZonedDateTime.prototype.epochNanoseconds](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/epochNanoseconds) +/// +/// See: [Temporal.ZonedDateTime.epochNanoseconds](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/epochNanoseconds) pub fn epochNanoseconds(self: ZonedDateTime) i128 { const parts = abi.c.temporal_rs_ZonedDateTime_epoch_nanoseconds(self._inner); return abi.fromI128Nanoseconds(parts); } /// Returns the calendar-specific era of this date, or null if not applicable. -/// See [MDN Temporal.ZonedDateTime.prototype.era](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/era) +/// +/// See: [Temporal.ZonedDateTime.era](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/era) pub fn era(self: ZonedDateTime, allocator: std.mem.Allocator) !?[]u8 { var write = abi.DiplomatWrite.init(allocator); defer write.deinit(); @@ -405,57 +421,66 @@ pub fn era(self: ZonedDateTime, allocator: std.mem.Allocator) !?[]u8 { } /// Returns the year of this date within the era, or null if not applicable. -/// See [MDN Temporal.ZonedDateTime.prototype.eraYear](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/eraYear) +/// +/// See: [Temporal.ZonedDateTime.eraYear](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/eraYear) pub fn eraYear(self: ZonedDateTime) ?i32 { const result = abi.c.temporal_rs_ZonedDateTime_era_year(self._inner); return abi.fromOption(result); } /// Returns the hour component of this time (0-23). -/// See [MDN Temporal.ZonedDateTime.prototype.hour](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/hour) +/// +/// See: [Temporal.ZonedDateTime.hour](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/hour) pub fn hour(self: ZonedDateTime) u8 { return abi.c.temporal_rs_ZonedDateTime_hour(self._inner); } /// Returns the number of hours in the day of this date in the time zone. -/// See [MDN Temporal.ZonedDateTime.prototype.hoursInDay](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/hoursInDay) +/// +/// See: [Temporal.ZonedDateTime.hoursInDay](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/hoursInDay) pub fn hoursInDay(self: ZonedDateTime) !f64 { const result = abi.c.temporal_rs_ZonedDateTime_hours_in_day(self._inner); return try abi.extractResult(result); } /// Returns true if this date is in a leap year. -/// See [MDN Temporal.ZonedDateTime.prototype.inLeapYear](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/inLeapYear) +/// +/// See: [Temporal.ZonedDateTime.inLeapYear](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/inLeapYear) pub fn inLeapYear(self: ZonedDateTime) bool { return abi.c.temporal_rs_ZonedDateTime_in_leap_year(self._inner); } /// Returns the microsecond component of this time (0-999). -/// See [MDN Temporal.ZonedDateTime.prototype.microsecond](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/microsecond) +/// +/// See: [Temporal.ZonedDateTime.microsecond](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/microsecond) pub fn microsecond(self: ZonedDateTime) u16 { return abi.c.temporal_rs_ZonedDateTime_microsecond(self._inner); } /// Returns the millisecond component of this time (0-999). -/// See [MDN Temporal.ZonedDateTime.prototype.millisecond](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/millisecond) +/// +/// See: [Temporal.ZonedDateTime.millisecond](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/millisecond) pub fn millisecond(self: ZonedDateTime) u16 { return abi.c.temporal_rs_ZonedDateTime_millisecond(self._inner); } /// Returns the minute component of this time (0-59). -/// See [MDN Temporal.ZonedDateTime.prototype.minute](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/minute) +/// +/// See: [Temporal.ZonedDateTime.minute](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/minute) pub fn minute(self: ZonedDateTime) u8 { return abi.c.temporal_rs_ZonedDateTime_minute(self._inner); } /// Returns the 1-based month index in the year of this date. -/// See [MDN Temporal.ZonedDateTime.prototype.month](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/month) +/// +/// See: [Temporal.ZonedDateTime.month](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/month) pub fn month(self: ZonedDateTime) u8 { return abi.c.temporal_rs_ZonedDateTime_month(self._inner); } /// Returns the calendar-specific string representing the month of this date. -/// See [MDN Temporal.ZonedDateTime.prototype.monthCode](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/monthCode) +/// +/// See: [Temporal.ZonedDateTime.monthCode](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/monthCode) pub fn monthCode(self: ZonedDateTime, allocator: std.mem.Allocator) ![]u8 { var write = abi.DiplomatWrite.init(allocator); defer write.deinit(); @@ -464,19 +489,22 @@ pub fn monthCode(self: ZonedDateTime, allocator: std.mem.Allocator) ![]u8 { } /// Returns the number of months in the year of this date. -/// See [MDN Temporal.ZonedDateTime.prototype.monthsInYear](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/monthsInYear) +/// +/// See: [Temporal.ZonedDateTime.monthsInYear](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/monthsInYear) pub fn monthsInYear(self: ZonedDateTime) u16 { return abi.c.temporal_rs_ZonedDateTime_months_in_year(self._inner); } /// Returns the nanosecond component of this time (0-999). -/// See [MDN Temporal.ZonedDateTime.prototype.nanosecond](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/nanosecond) +/// +/// See: [Temporal.ZonedDateTime.nanosecond](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/nanosecond) pub fn nanosecond(self: ZonedDateTime) u16 { return abi.c.temporal_rs_ZonedDateTime_nanosecond(self._inner); } /// Returns the offset used to interpret the internal instant, as a string (±HH:mm). -/// See [MDN Temporal.ZonedDateTime.prototype.offset](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/offset) +/// +/// See: [Temporal.ZonedDateTime.offset](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/offset) pub fn offset(self: ZonedDateTime, allocator: std.mem.Allocator) ![]u8 { var write = abi.DiplomatWrite.init(allocator); defer write.deinit(); @@ -486,19 +514,22 @@ pub fn offset(self: ZonedDateTime, allocator: std.mem.Allocator) ![]u8 { } /// Returns the offset used to interpret the internal instant, as a number of nanoseconds. -/// See [MDN Temporal.ZonedDateTime.prototype.offsetNanoseconds](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/offsetNanoseconds) +/// +/// See: [Temporal.ZonedDateTime.offsetNanoseconds](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/offsetNanoseconds) pub fn offsetNanoseconds(self: ZonedDateTime) i64 { return abi.c.temporal_rs_ZonedDateTime_offset_nanoseconds(self._inner); } /// Returns the second component of this time (0-59). -/// See [MDN Temporal.ZonedDateTime.prototype.second](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/second) +/// +/// See: [Temporal.ZonedDateTime.second](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/second) pub fn second(self: ZonedDateTime) u8 { return abi.c.temporal_rs_ZonedDateTime_second(self._inner); } /// Returns the time zone identifier used to interpret the internal instant. -/// See [MDN Temporal.ZonedDateTime.prototype.timeZoneId](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/timeZoneId) +/// +/// See: [Temporal.ZonedDateTime.timeZoneId](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/timeZoneId) pub fn timeZoneId(self: ZonedDateTime, allocator: std.mem.Allocator) ![]u8 { const tz = abi.c.temporal_rs_ZonedDateTime_timezone(self._inner); var write = abi.DiplomatWrite.init(allocator); @@ -510,20 +541,23 @@ pub fn timeZoneId(self: ZonedDateTime, allocator: std.mem.Allocator) ![]u8 { } /// Returns the 1-based week index in the year of this date, or null if not defined. -/// See [MDN Temporal.ZonedDateTime.prototype.weekOfYear](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/weekOfYear) +/// +/// See: [Temporal.ZonedDateTime.weekOfYear](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/weekOfYear) pub fn weekOfYear(self: ZonedDateTime) ?u8 { const result = abi.c.temporal_rs_ZonedDateTime_week_of_year(self._inner); return abi.fromOption(result); } /// Returns the year of this date relative to the calendar's epoch. -/// See [MDN Temporal.ZonedDateTime.prototype.year](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/year) +/// +/// See: [Temporal.ZonedDateTime.year](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/year) pub fn year(self: ZonedDateTime) i32 { return abi.c.temporal_rs_ZonedDateTime_year(self._inner); } /// Returns the year to be paired with the weekOfYear of this date, or null if not defined. -/// See [MDN Temporal.ZonedDateTime.prototype.yearOfWeek](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/yearOfWeek) +/// +/// See: [Temporal.ZonedDateTime.yearOfWeek](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/yearOfWeek) pub fn yearOfWeek(self: ZonedDateTime) ?i32 { const result = abi.c.temporal_rs_ZonedDateTime_year_of_week(self._inner); return abi.fromOption(result); @@ -540,7 +574,12 @@ pub fn deinit(self: ZonedDateTime) void { abi.c.temporal_rs_ZonedDateTime_destroy(self._inner); } -// ---------- Tests --------------------- +/// Helper function to wrap a C API result into a ZonedDateTime +fn wrapZonedDateTime(result: anytype) !ZonedDateTime { + const ptr = (try abi.extractResult(result)) orelse return abi.TemporalError.Generic; + return .{ ._inner = ptr }; +} + test init { const tz = try TimeZone.init("America/New_York"); const zdt = try init(0, tz); diff --git a/src/root.zig b/src/root.zig index fb00e2f..dfb1f53 100644 --- a/src/root.zig +++ b/src/root.zig @@ -4,49 +4,49 @@ const Temporal = @This(); /// The `Temporal.Duration` object represents a difference between two time points, which can be used in date/time arithmetic. /// It is fundamentally represented as a combination of years, months, weeks, days, hours, minutes, seconds, milliseconds, microseconds, and nanoseconds values. /// -/// - [MDN Temporal.Duration](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/Duration) +/// See: [Temporal.Duration](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/Duration) pub const Duration = @import("Duration.zig"); /// The `Temporal.Instant` object represents a unique point in time, with nanosecond precision. /// It is fundamentally represented as the number of nanoseconds since the Unix epoch (midnight at the beginning of January 1, 1970, UTC), without any time zone or calendar system. /// -/// - [MDN Temporal.Instant](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/Instant) +/// See: [Temporal.Instant](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/Instant) pub const Instant = @import("Instant.zig"); /// The `Temporal.Now` namespace object contains static methods for getting the current time in various formats. /// All properties and methods are static. /// -/// - [MDN Temporal.Now](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/Now) +/// See: [Temporal.Now](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/Now) pub const Now = @import("Now.zig"); /// The `Temporal.PlainDate` object represents a calendar date (year, month, day) with no time or time zone. /// -/// - [MDN Temporal.PlainDate](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainDate) +/// See: [Temporal.PlainDate](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainDate) pub const PlainDate = @import("PlainDate.zig"); /// The `Temporal.PlainDateTime` object represents a calendar date and wall-clock time, but no time zone or offset. /// -/// - [MDN Temporal.PlainDateTime](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainDateTime) +/// See: [Temporal.PlainDateTime](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainDateTime) pub const PlainDateTime = @import("PlainDateTime.zig"); /// The `Temporal.PlainMonthDay` object represents a month and day in a calendar, with no year or time. /// -/// - [MDN Temporal.PlainMonthDay](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainMonthDay) +/// See: [Temporal.PlainMonthDay](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainMonthDay) pub const PlainMonthDay = @import("PlainMonthDay.zig"); /// The `Temporal.PlainTime` object represents a wall-clock time, with no date or time zone. /// -/// - [MDN Temporal.PlainTime](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainTime) +/// See: [Temporal.PlainTime](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainTime) pub const PlainTime = @import("PlainTime.zig"); /// The `Temporal.PlainYearMonth` object represents a particular month in a specific year, with no day or time. /// -/// - [MDN Temporal.PlainYearMonth](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainYearMonth) +/// See: [Temporal.PlainYearMonth](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainYearMonth) pub const PlainYearMonth = @import("PlainYearMonth.zig"); /// The `Temporal.ZonedDateTime` object represents an exact time, including a time zone and calendar. /// -/// - [MDN Temporal.ZonedDateTime](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime) +/// See: [Temporal.ZonedDateTime](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime) pub const ZonedDateTime = @import("ZonedDateTime.zig"); test Temporal {