tryDecode static method

WalRecord? tryDecode(
  1. String line
)

Implementation

static WalRecord? tryDecode(String line) {
  try {
    final outer = jsonDecode(line) as Map<String, dynamic>;
    final body  = outer['body'] as String;
    final crc   = outer['crc']  as int;

    if (_Crc32.compute(body) != crc) return null;

    final m = jsonDecode(body) as Map<String, dynamic>;
    return WalRecord(
      lsn:      m['lsn']   as int,
      txnId:    m['txnId'] as int? ?? 0,
      op:       WalOp.values.firstWhere((e) => e.name == m['op']),
      table:    m['table'] as String,
      payload:  Map<String, dynamic>.from(m['payload'] as Map),
      checksum: crc,
    );
  } catch (_) {
    return null;
  }
}