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 standard library.
std › Progress › copyAtomicStore Private Function copyAtomicStore Doc Source Private Function std.Progress.copyAtomicStore
fn copyAtomicStore (dest : []align (@alignOf (usize )) u8 , src : []const u8 ) void Params dest : []align (@alignOf (usize )) u8 src : []const u8 File Progress.zig: 1615
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627 fn copyAtomicStore (dest : []align (@alignOf (usize )) u8 , src : []const u8 ) void {
assert (dest .len == src .len );
const chunked_len = dest .len / @sizeOf (usize );
const dest_chunked : []usize = @as ([*]usize , @ptrCast (dest ))[0 ..chunked_len ];
const src_chunked : []align (1 ) const usize = @as ([*]align (1 ) const usize , @ptrCast (src ))[0 ..chunked_len ];
for (dest_chunked , src_chunked ) |*d , s | {
@atomicStore (usize , d , s , .monotonic );
}
const remainder_start = chunked_len * @sizeOf (usize );
for (dest [remainder_start ..], src [remainder_start ..]) |*d , s | {
@atomicStore (u8 , d , s , .monotonic );
}
}