{
"Speaker": "Gaetano Checinski",
"Company": "LoopPerfect"
"Role": "Founder & Software Architect"
}

\e[nA move n up
\e[nB move n down
\e[nC move n right
\e[nD move n left



VirtualTerminal vt;
auto superProgressBar = [](auto x, auto y, auto z) -> FlowLayout<> {
return {
Text("3 segment progressbar: "),
{
MaxWidth(20, Progress(x)),
MaxWidth(20, Progress(y)),
MaxWidth(20, Progress(z))
}
};
};
for (int i = 0; i < 101; ++i) {
vt = renderToTerm(vt, superProgressBar(0.01 * i, 0.02 * i, 0.03 * i));
std::this_thread::sleep_for(200ms);
}
using rxo = rxcpp::observable<>;
rxo::zip_with_latest(
superProgressBar,
rxo::interval(100ms),
rxo::interval(200ms),
rxo::interval(300ms))
.scan(VirtualTerminal{}, renderToTerm)
.subscribe();


