Разбивка текста на чанки

This commit is contained in:
Alexander Zhirov 2025-09-08 01:08:37 +03:00
parent 57f9ada9c9
commit 0a8359cfe7
Signed by: alexander
GPG key ID: C8D8BE544A27C511
6 changed files with 358 additions and 783 deletions

48
tools/gen.d Executable file
View file

@ -0,0 +1,48 @@
#!/usr/bin/rdmd
module tools.gen;
import std.stdio;
import std.random : Random, unpredictableSeed, uniform;
void main()
{
enum N = 256;
ulong[N] gear;
auto rng = Random(unpredictableSeed);
bool[ulong] seen;
ulong[] vals;
vals.reserve(N);
while (vals.length < N)
{
const v = uniform!ulong(rng);
if (v in seen)
continue;
seen[v] = true;
vals ~= v;
}
gear[] = vals[0 .. N];
writeln("immutable ulong[256] gear = [");
foreach (i, v; gear)
{
// Индент только в начале каждой строки
if (i % 4 == 0)
write("\t");
writef("0x%016x", v);
if (i != N - 1) // не ставим запятую после последнего
write(",");
// Перенос после каждого 4-го элемента или в самом конце
if ((i + 1) % 4 == 0 || i == N - 1)
writeln();
else
write(" ");
}
writeln("];");
}