From: Paolo Bonzini Date: Tue, 4 Nov 2025 15:44:52 +0000 (+0100) Subject: migration: add prelude X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e560f257b2a5e742e9f1056768cde096c5d7c844;p=thirdparty%2Fqemu.git migration: add prelude Signed-off-by: Paolo Bonzini --- diff --git a/rust/chardev/src/prelude.rs b/rust/chardev/src/prelude.rs new file mode 100644 index 00000000000..9f0b561bfab --- /dev/null +++ b/rust/chardev/src/prelude.rs @@ -0,0 +1,3 @@ +//! Essential types and traits intended for blanket imports. + +pub use crate::chardev::{Chardev, CharFrontend, Event}; \ No newline at end of file diff --git a/rust/hw/char/pl011/src/device.rs b/rust/hw/char/pl011/src/device.rs index 164f27d5bb2..2e4ccc9b231 100644 --- a/rust/hw/char/pl011/src/device.rs +++ b/rust/hw/char/pl011/src/device.rs @@ -8,10 +8,7 @@ use bql::BqlRefCell; use chardev::{CharFrontend, Chardev, Event}; use common::prelude::*; use hwcore::{prelude::*, ClockEvent, IRQState}; -use migration::{ - self, impl_vmstate_forward, impl_vmstate_struct, vmstate_fields, vmstate_of, - vmstate_subsections, vmstate_unused, VMStateDescription, VMStateDescriptionBuilder, -}; +use migration::{self, prelude::*}; use qom::{prelude::*, ObjectImpl, Owned, ParentField, ParentInit}; use system::{hwaddr, MemoryRegion, MemoryRegionOps, MemoryRegionOpsBuilder}; use util::prelude::*; diff --git a/rust/hw/core/tests/tests.rs b/rust/hw/core/tests/tests.rs index b39d1501d5b..f38376d0016 100644 --- a/rust/hw/core/tests/tests.rs +++ b/rust/hw/core/tests/tests.rs @@ -6,7 +6,7 @@ use std::{ffi::CStr, ptr::addr_of}; use bql::BqlCell; use hwcore::prelude::*; -use migration::{VMStateDescription, VMStateDescriptionBuilder}; +use migration::prelude::*; use qom::{prelude::*, ObjectImpl, ParentField}; use util::bindings::{module_call_init, module_init_type}; diff --git a/rust/hw/timer/hpet/src/device.rs b/rust/hw/timer/hpet/src/device.rs index 7ab9897cdfb..4ff1779a3d2 100644 --- a/rust/hw/timer/hpet/src/device.rs +++ b/rust/hw/timer/hpet/src/device.rs @@ -13,10 +13,7 @@ use std::{ use bql::{BqlCell, BqlRefCell}; use common::prelude::*; use hwcore::prelude::*; -use migration::{ - self, impl_vmstate_struct, vmstate_fields, vmstate_of, vmstate_subsections, vmstate_validate, - VMStateDescription, VMStateDescriptionBuilder, -}; +use migration::{self, prelude::*}; use qom::{prelude::*, ObjectImpl, ParentField, ParentInit}; use system::{ bindings::{address_space_memory, address_space_stl_le, hwaddr}, diff --git a/rust/migration/meson.build b/rust/migration/meson.build index 94590dc1b87..76d86b0ac0f 100644 --- a/rust/migration/meson.build +++ b/rust/migration/meson.build @@ -32,6 +32,7 @@ _migration_rs = static_library( 'src/lib.rs', 'src/bindings.rs', 'src/migratable.rs', + 'src/prelude.rs', 'src/vmstate.rs', ], {'.' : _migration_bindings_inc_rs}, diff --git a/rust/migration/src/lib.rs b/rust/migration/src/lib.rs index c9bdf0d4133..32e182e716a 100644 --- a/rust/migration/src/lib.rs +++ b/rust/migration/src/lib.rs @@ -7,5 +7,10 @@ pub use qemu_macros::ToMigrationState; pub mod migratable; pub use migratable::*; +// preserve one-item-per-"use" syntax, it is clearer +// for prelude-like modules +#[rustfmt::skip] +pub mod prelude; + pub mod vmstate; pub use vmstate::*; diff --git a/rust/migration/src/prelude.rs b/rust/migration/src/prelude.rs new file mode 100644 index 00000000000..797e7ec59d1 --- /dev/null +++ b/rust/migration/src/prelude.rs @@ -0,0 +1,19 @@ +//! Essential types and traits intended for blanket imports. + +// Core migration traits and types +pub use crate::vmstate::VMState; +pub use crate::vmstate::VMStateDescription; +pub use crate::vmstate::VMStateDescriptionBuilder; + +// Migratable wrappers +pub use crate::migratable::Migratable; +pub use crate::ToMigrationState; + +// Commonly used macros +pub use crate::impl_vmstate_forward; +pub use crate::impl_vmstate_struct; +pub use crate::vmstate_fields; +pub use crate::vmstate_of; +pub use crate::vmstate_subsections; +pub use crate::vmstate_unused; +pub use crate::vmstate_validate; diff --git a/rust/tests/tests/vmstate_tests.rs b/rust/tests/tests/vmstate_tests.rs index fa9bbd6a122..c3f9e1c7436 100644 --- a/rust/tests/tests/vmstate_tests.rs +++ b/rust/tests/tests/vmstate_tests.rs @@ -16,9 +16,8 @@ use migration::{ vmstate_info_bool, vmstate_info_int32, vmstate_info_int64, vmstate_info_int8, vmstate_info_uint64, vmstate_info_uint8, vmstate_info_unused_buffer, VMStateFlags, }, - impl_vmstate_forward, impl_vmstate_struct, - vmstate::{VMStateDescription, VMStateDescriptionBuilder, VMStateField}, - vmstate_fields, vmstate_of, vmstate_unused, vmstate_validate, + prelude::*, + vmstate::VMStateField, }; const FOO_ARRAY_MAX: usize = 3;