Как назначать идентификаторы стабильной памяти в Rust-канистре

MemoryManager делит стабильную память на виртуальные области. Каждой структуре требуется постоянное назначение, которое сохранится при рефакторинге и обновлениях.

Включите назначения в схему хранения

Первая версия держит пользователей в области 0, балансы — в области 1. Для нового индекса аудита выделите свободный номер. Перестановка вариантов enum с неявными номерами способна открыть балансы как другую структуру. Указывайте номера явно и учитывайте структуры, занимающие несколько областей.

MemoryId(0) → users B-tree
MemoryId(1) → balances B-tree
MemoryId(2) → new audit log index

Проверьте обновление на прежних данных

Установите прежний релиз, внесите контрольного пользователя и баланс, затем обновитесь и прочитайте оба значения до добавления записей. Стабильная память сохраняет байты. Изменение порядка ключей, сериализации или ограничений размера может нарушить чтение и при совпадающих номерах областей.

Источники