}
}
+unsigned EventsModel::get_last_event_pos(uint64_t t) const
+{
+ // upper_bound() gives first where e.t > t,
+ // and the one before that is the one we want.
+ auto it = upper_bound(events.begin(), events.end(), t,
+ [](uint64_t t, const Event &e) { return t < e.t; });
+ if (it == events.begin()) {
+ return 0;
+ } else {
+ return distance(events.begin(), it - 1);
+ }
+}
+
EventsModel::Status EventsModel::get_status_at(uint64_t t)
{
Status s;