aboutsummaryrefslogtreecommitdiff
path: root/mirai.old/utils/mem/copy.zig
blob: 405a55b4e70ca83ea9afdb5687eb06bf01bc0760 (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
//! Memory copy utilities

pub inline fn bytes(dest: []u8, src: []const u8) void {
    @memcpy(dest[0..src.len], src);
}

pub inline fn bytes_n(dest: []u8, src: []const u8, n: usize) void {
    @memcpy(dest[0..n], src[0..n]);
}

pub inline fn fill(dest: []u8, value: u8) void {
    @memset(dest, value);
}

pub inline fn zero(dest: []u8) void {
    @memset(dest, 0);
}

pub inline fn from_ptr(dest: []u8, src_ptr: u64, len: usize) void {
    const src = @as([*]const u8, @ptrFromInt(src_ptr));
    @memcpy(dest[0..len], src[0..len]);
}

pub inline fn to_ptr(dest_ptr: u64, src: []const u8) void {
    const dest = @as([*]u8, @ptrFromInt(dest_ptr));
    @memcpy(dest[0..src.len], src);
}