Skip to main content

Module migrations

Module migrations 

Source
Expand description

Scene format migrations.

SceneHeader.format_version is bumped whenever the on-disk layout changes. Migrations are registered through inventory::submit! and applied in chain at load time before the strategy decodes the payload.

Today no migrations are registered (every supported scene already reads as format_version = 1). The framework is kept thin so a future schema change can ship the migration alongside the format bump without touching SerializationService.

Migration ordering: the runner sorts entries by from_version and applies each whose from_version matches the current payload, then bumps the working version to to_version and repeats. Two migrations covering the same from_version is a configuration error — the runner picks the first registered match and logs a warning.

Structs§

SceneMigrationRegistration
Inventory entry for plugin-registered migrations.

Enums§

MigrationError
Migration step failure. Wraps strategy-specific errors as text so the runner can keep its surface narrow.

Traits§

SceneMigration
One step of a scene-format migration. Receives the raw payload bytes emitted by the previous version’s strategy and returns the bytes the next version’s strategy expects.

Functions§

migrate_payload
Apply registered migrations to bring payload from from_version up to to_version. Returns the (possibly unchanged) payload bytes.