restore method

  1. @override
Future<void> restore(
  1. String key,
  2. AtData value
)
override

Write value for key verbatim — no AtMetadataBuilder pass, no version/updatedAt mutation, no commit-log append, no change-event. The stored record is byte-for-byte what value carries (its data and its metadata).

This is the keystore counterpart to AtCommitLog.replay: it exists for the persistence migrator to copy keystore content from one backend to another while preserving every field exactly. It is NOT a general write path — application writes go through put / create / putAll, which derive metadata. Idempotent: restoring the same (key, value) twice leaves the same stored record.

Implementation

@override
Future<void> restore(String key, AtData value) async {
  final k = _validateAndNormalize(key);
  _checkMaxLength(k);
  // Verbatim: store value as-is (its own metadata), no builder pass,
  // no commit-log append, no change event.
  _db.runInTransaction(() => _upsertAtData(k, value));
}