Zig 0.17.0-dev (Split by item)
This is an example of documentation generated by
ZigDoc , an alternative to Zig's built-in
Auto Doc feature. See also
examples in other modes/formats . The project being documented here (as the example) is the Zig library itself.
Zig › compiler_rt/ › memcpy.zig › copyForwards
copyForwards
memcpy.copyForwards
inline fn copyForwards (
noalias dest : [*]u8 ,
noalias src : [*]const u8 ,
len : usize ,
) void
File
Code
inline fn copyForwards (
noalias dest : [*]u8 ,
noalias src : [*]const u8 ,
len : usize ,
) void {
@setRuntimeSafety (false );
copyFixedLength (dest , src , @sizeOf (Element ));
const alignment_offset = @alignOf (Element ) - @intFromPtr (src ) % @alignOf (Element );
const n = len - alignment_offset ;
const d = dest + alignment_offset ;
const s = src + alignment_offset ;
copyBlocksAlignedSource (@ptrCast (d ), @ptrCast (@alignCast (s )), n );
// methods only copy a multiple of `@sizeOf(Element)` bytes.
const offset = len - @sizeOf (Element );
copyFixedLength (dest + offset , src + offset , @sizeOf (Element ));
}