Как назначать идентификаторы стабильной памяти в Rust-канистре
MemoryManager делит стабильную память на виртуальные области. Каждой структуре требуется постоянное назначение, которое сохранится при рефакторинге и обновлениях.
Включите назначения в схему хранения
Первая версия держит пользователей в области 0, балансы — в области 1. Для нового индекса аудита выделите свободный номер. Перестановка вариантов enum с неявными номерами способна открыть балансы как другую структуру. Указывайте номера явно и учитывайте структуры, занимающие несколько областей.
MemoryId(0) → users B-tree
MemoryId(1) → balances B-tree
MemoryId(2) → new audit log index
Проверьте обновление на прежних данных
Установите прежний релиз, внесите контрольного пользователя и баланс, затем обновитесь и прочитайте оба значения до добавления записей. Стабильная память сохраняет байты. Изменение порядка ключей, сериализации или ограничений размера может нарушить чтение и при совпадающих номерах областей.