| ... | @@ -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 | } |
| 927 | | 927 | |
| | 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 | } |
| 966 | | 970 | |
| | 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 | } |
| 974 | | 982 | |
| | 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 | } |