xxxxxxxxxx
import std.algorithm, std.container, std.stdio;
struct DataPoint {
immutable ulong time;
ulong value;
}
void main() {
auto dataPoints = DList!DataPoint([
DataPoint(10_000_000, 1),
DataPoint(30_000_000, 3),
DataPoint(40_000_000, 4),
]);
auto time = 30_000_000;
auto r = findSplit!((a, b) => a.time == b)(dataPoints[], [time]);
r[0].front.writeln;
r[1].front.writeln;
r[2].front.writeln;
auto dp = dataPoints[].find(r[1].front);
writeln("before: ", dataPoints[]);
dataPoints.insertBefore(dp, DataPoint(20_000_000, 2));
writeln("after: ", dataPoints[]);
}