chore: reorganize util.zig

This commit is contained in:
Rekai Nyangadzayi Musuka 2022-02-05 15:55:12 -04:00
parent 78080b4682
commit bf4207ba8c
1 changed files with 5 additions and 5 deletions

View File

@ -1,6 +1,10 @@
const std = @import("std");
pub fn signExtend(comptime T: type, comptime bits: usize, value: anytype) T {
pub fn u32SignExtend(comptime bits: usize, value: u32) u32 {
return @bitCast(u32, signExtend(i32, bits, @bitCast(i32, value)));
}
fn signExtend(comptime T: type, comptime bits: usize, value: anytype) T {
const ValT = comptime @TypeOf(value);
comptime std.debug.assert(isInteger(ValT));
comptime std.debug.assert(isSigned(ValT));
@ -16,10 +20,6 @@ pub fn signExtend(comptime T: type, comptime bits: usize, value: anytype) T {
return ((value & ((1 << bits) - 1)) << bit_diff) >> bit_diff;
}
pub fn u32SignExtend(comptime bits: usize, value: u32) u32 {
return @bitCast(u32, signExtend(i32, bits, @bitCast(i32, value)));
}
fn isInteger(comptime T: type) bool {
return @typeInfo(T) == .Int;
}