rangeDigest method
One pass over the full changeset — this engine is in-memory anyway.
Implementation
@override
Future<RangeDigest> rangeDigest(
String table, {
String? fromHlc,
String? toHlc,
}) {
final from = fromHlc == null ? null : Hlc.parse(fromHlc);
final to = toHlc == null ? null : Hlc.parse(toHlc);
final builder = RangeDigestBuilder();
for (final record in _crdt.getChangeset(onlyTables: [table])[table] ??
const <Map<String, Object?>>[]) {
final hlc = record['hlc'] as Hlc;
if (from != null && hlc <= from) continue;
if (to != null && hlc > to) continue;
builder.add(record['key'] as String, hlc);
}
return Future.value(builder.build());
}