putMeta method

  1. @override
Future<int?> putMeta(
  1. String key,
  2. AtMetaData? metadata
)
override

Updates the metadata for key without touching its value. Returns the commit-log sequence number assigned to this write, or null if no sequence number was produced.

Implementation

@override
Future<int?> putMeta(String key, AtMetaData? metadata) async {
  final k = _validateAndNormalize(key);
  final existing = _existsSync(k) ? _getSync(k)! : AtData();
  final toStore = AtData()
    ..data = existing.data
    ..metaData = AtMetadataBuilder(
      atSign: atSign,
      newAtMetaData: metadata,
      existingMetaData: existing.metaData,
    ).build();
  final result = _db.runInTransaction(() {
    _upsertAtData(k, toStore);
    return _commitOrNull(k, CommitOp.UPDATE_META);
  });
  _changes.add(KeyUpdated(k));
  return result;
}