authorgravatar for sachabarsayuracko@gmail.comsquidy239 <sachabarsayuracko@gmail.com> 2026-03-12 01:34:40+01:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2026-03-12 01:34:40+01:00
logd6632b1dd281149a7219f910e90072a098cc5345
treec69976e4a0fcc37ac1adf5a7b53eec2158099c85
parent58890066d9caec3d421afe7465a2586668442982

std.Io: added missing toMicroseconds and fromMicroseconds functions (#30099)

added toMicroseconds and fromMicroseconds functions to std.Io.Duration and toMicroseconds to std.Io.Timestamp Reviewed-on: https://codeberg.org/ziglang/zig/pulls/30099 Reviewed-by: Andrew Kelley <andrew@ziglang.org> Co-authored-by: squidy239 <sachabarsayuracko@gmail.com> Co-committed-by: squidy239 <sachabarsayuracko@gmail.com>

1 files changed, 12 insertions(+), 0 deletions(-)

lib/std/Io.zig+12
...@@ -925,6 +925,10 @@ pub const Timestamp = struct {...@@ -925,6 +925,10 @@ pub const Timestamp = struct {
925 return .{ .nanoseconds = x };925 return .{ .nanoseconds = x };
926 }926 }
927927
928 pub fn toMicroseconds(t: Timestamp) i64 {
929 return @intCast(@divTrunc(t.nanoseconds, std.time.ns_per_us));
930 }
931
928 pub fn toMilliseconds(t: Timestamp) i64 {932 pub fn toMilliseconds(t: Timestamp) i64 {
929 return @intCast(@divTrunc(t.nanoseconds, std.time.ns_per_ms));933 return @intCast(@divTrunc(t.nanoseconds, std.time.ns_per_ms));
930 }934 }
...@@ -964,6 +968,10 @@ pub const Duration = struct {...@@ -964,6 +968,10 @@ pub const Duration = struct {
964 return .{ .nanoseconds = x };968 return .{ .nanoseconds = x };
965 }969 }
966970
971 pub fn fromMicroseconds(x: i64) Duration {
972 return .{ .nanoseconds = @as(i96, x) * std.time.ns_per_us };
973 }
974
967 pub fn fromMilliseconds(x: i64) Duration {975 pub fn fromMilliseconds(x: i64) Duration {
968 return .{ .nanoseconds = @as(i96, x) * std.time.ns_per_ms };976 return .{ .nanoseconds = @as(i96, x) * std.time.ns_per_ms };
969 }977 }
...@@ -972,6 +980,10 @@ pub const Duration = struct {...@@ -972,6 +980,10 @@ pub const Duration = struct {
972 return .{ .nanoseconds = @as(i96, x) * std.time.ns_per_s };980 return .{ .nanoseconds = @as(i96, x) * std.time.ns_per_s };
973 }981 }
974982
983 pub fn toMicroseconds(d: Duration) i64 {
984 return @intCast(@divTrunc(d.nanoseconds, std.time.ns_per_us));
985 }
986
975 pub fn toMilliseconds(d: Duration) i64 {987 pub fn toMilliseconds(d: Duration) i64 {
976 return @intCast(@divTrunc(d.nanoseconds, std.time.ns_per_ms));988 return @intCast(@divTrunc(d.nanoseconds, std.time.ns_per_ms));
977 }989 }