putMeta method
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;
}