opt.: TimeSeq

This commit is contained in:
lollipopkit
2023-07-28 20:21:15 +08:00
parent 6045e7e7f0
commit 1163f2e418
8 changed files with 107 additions and 115 deletions

View File

@@ -0,0 +1,22 @@
// ignore_for_file: prefer_final_fields
abstract class TimeSeq<T extends TimeSeqIface> {
List<T> pre;
List<T> now;
void update(List<T> new_) {
pre = now;
now = new_;
if (pre.length != now.length) {
pre.removeWhere((e) => now.any((el) => e.same(el)));
pre.addAll(now.where((e) => pre.every((el) => !e.same(el))));
}
}
TimeSeq(this.pre, this.now);
}
abstract class TimeSeqIface<T> {
bool same(T other);
}