const std = @import("std");
const math = std.math;
const mem = std.mem;

// Copies elements from a source `src` slice into a destination `dst` slice.

// The copy never returns an error but might not be complete if the destination is too small.

// Returns the number of elements copied, which will be the minimum of `src.len` and `dst.len`.

pub fn copy(dst: []u8, src: []const u8) usize {
    if (dst.len <= src.len) {
        mem.copy(u8, dst[0..], src[0..dst.len]);
    } else {
        mem.copy(u8, dst[0..src.len], src[0..]);
    }
    return math.min(dst.len, src.len);
}