rust: vmstate: convert to use builder pattern

Similar to MemoryRegionOps, the builder pattern has two advantages:
1) it makes it possible to build a VMStateDescription that knows which
types it will be invoked on; 2) it provides a way to wrap the callbacks
and let devices avoid "unsafe".

Unfortunately, building a static VMStateDescription requires the
builder methods to be "const", and because the VMStateFields are
*also* static, this requires const_refs_static.  So this requires
Rust 1.83.0.

Signed-off-by: Zhao Liu <zhao1.liu@intel.com>
Link: https://lore.kernel.org/r/20250908105005.2119297-8-pbonzini@redhat.com
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Zhao Liu
2025-09-17 19:00:56 +02:00
committed by Paolo Bonzini
parent a71df7e143
commit 7da9ee9207
8 changed files with 450 additions and 244 deletions
+1 -1
View File
@@ -162,7 +162,7 @@ module status
``qom`` stable
``sysbus`` stable
``timer`` stable
``vmstate`` proof of concept
``vmstate`` stable
``zeroable`` stable
================ ======================