blob: e8529c5cee501f11fc5f00f4db2c03cb6f7b245b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
//! Integer conversion utilities
pub inline fn u3_of(value: anytype) u3 {
return @as(u3, @truncate(value));
}
pub inline fn u5_of(value: anytype) u5 {
return @as(u5, @truncate(value));
}
pub inline fn u8_of(value: anytype) u8 {
return @as(u8, @truncate(value));
}
pub inline fn u16_of(value: anytype) u16 {
const T = @TypeOf(value);
if (@typeInfo(T) == .int and @typeInfo(T).int.bits > 16) {
return @as(u16, @truncate(value));
}
return @as(u16, @intCast(value));
}
pub inline fn u32_of(value: anytype) u32 {
const T = @TypeOf(value);
if (@typeInfo(T) == .int and @typeInfo(T).int.bits > 32) {
return @as(u32, @truncate(value));
}
return @as(u32, @intCast(value));
}
pub inline fn u64_of(value: anytype) u64 {
return @as(u64, @intCast(value));
}
pub inline fn usize_of(value: anytype) usize {
return @as(usize, @intCast(value));
}
pub inline fn from_ptr(ptr: anytype) u64 {
return @intFromPtr(ptr);
}
|