TemporalZ

toString

Returns a string representation of the date-time.

Parameters

#
self:PlainDateTime
PlainDateTime
allocator:std.mem.Allocator
std.mem.Allocator
options:ToStringOptions
ToStringOptions

Source

Implementation

#
pub fn toString(self: PlainDateTime, allocator: std.mem.Allocator, options: ToStringOptions) ![]u8 {
    var write = abi.DiplomatWrite.init(allocator);
    defer write.deinit();

    const rounding_options = std.mem.zeroes(abi.c.ToStringRoundingOptions);

    const display_cal: abi.c.DisplayCalendar = if (options.calendar_display) |cal| switch (cal) {
        .auto => @intCast(abi.c.DisplayCalendar_Auto),
        .always => @intCast(abi.c.DisplayCalendar_Always),
        .never => @intCast(abi.c.DisplayCalendar_Never),
        .critical => @intCast(abi.c.DisplayCalendar_Critical),
    } else @intCast(abi.c.DisplayCalendar_Auto);

    const result = abi.c.temporal_rs_PlainDateTime_to_ixdtf_string(
        self._inner,
        rounding_options,
        display_cal,
        &write.inner,
    );

    if (!result.is_ok) return error.TemporalError;
    return try write.toOwnedSlice();
}