aboutsummaryrefslogtreecommitdiff
path: root/mirai.old/utils/mem/slice.zig
diff options
context:
space:
mode:
Diffstat (limited to 'mirai.old/utils/mem/slice.zig')
-rw-r--r--mirai.old/utils/mem/slice.zig29
1 files changed, 29 insertions, 0 deletions
diff --git a/mirai.old/utils/mem/slice.zig b/mirai.old/utils/mem/slice.zig
new file mode 100644
index 0000000..f750d6c
--- /dev/null
+++ b/mirai.old/utils/mem/slice.zig
@@ -0,0 +1,29 @@
+//! Slice and pointer utilities
+
+pub inline fn from_ptr(comptime T: type, ptr: u64, len: usize) []T {
+ return @as([*]T, @ptrFromInt(ptr))[0..len];
+}
+
+pub inline fn from_ptr_const(comptime T: type, ptr: u64, len: usize) []const T {
+ return @as([*]const T, @ptrFromInt(ptr))[0..len];
+}
+
+pub inline fn byte_ptr(ptr: u64) [*]u8 {
+ return @as([*]u8, @ptrFromInt(ptr));
+}
+
+pub inline fn byte_ptr_const(ptr: u64) [*]const u8 {
+ return @as([*]const u8, @ptrFromInt(ptr));
+}
+
+pub inline fn null_term_ptr(ptr: u64) [*:0]const u8 {
+ return @as([*:0]const u8, @ptrFromInt(ptr));
+}
+
+pub inline fn typed_ptr(comptime T: type, ptr: u64) [*]T {
+ return @as([*]T, @ptrFromInt(ptr));
+}
+
+pub inline fn typed_ptr_const(comptime T: type, ptr: u64) [*]const T {
+ return @as([*]const T, @ptrFromInt(ptr));
+}