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. Public Function
intRangeLessThan
Public Function
std.Random.intRangeLessThan
pubfnintRangeLessThan(r: Random, comptimeT: type, at_least: T, less_than: T) T
Returns an evenly distributed random integer at_least <= i < less_than. See uintLessThan, which this function uses in most cases, for commentary on the runtime of this function.
pubfnintRangeLessThan(r: Random, comptimeT: type, at_least: T, less_than: T) T {
assert(at_least < less_than);
constinfo = @typeInfo(T).int;
if (info.signedness == .signed) {
// Two's complement makes this math pretty easy.constUnsignedT = @Int(.unsigned, info.bits);
constlo: UnsignedT = @bitCast(at_least);
consthi: UnsignedT = @bitCast(less_than);
constresult = lo +% r.uintLessThan(UnsignedT, hi -% lo);
return@bitCast(result);
} else {
// The signed implementation would work fine, but we can use stricter arithmetic operators here.returnat_least + r.uintLessThan(T, less_than - at_least);
}
}
Returns an evenly distributed random integer
at_least <= i < less_than. SeeuintLessThan, which this function uses in most cases, for commentary on the runtime of this function.