Signed-off-by: Paolo Bonzini <[email protected]>
---
 rust/hw/char/pl011/src/device.rs | 2 +-
 rust/hw/timer/hpet/src/device.rs | 5 +++--
 rust/system/meson.build          | 1 +
 rust/system/src/lib.rs           | 5 +++++
 rust/system/src/prelude.rs       | 8 ++++++++
 5 files changed, 18 insertions(+), 3 deletions(-)
 create mode 100644 rust/system/src/prelude.rs

diff --git a/rust/hw/char/pl011/src/device.rs b/rust/hw/char/pl011/src/device.rs
index be1bdf5ab12..0b1bb2d5a3b 100644
--- a/rust/hw/char/pl011/src/device.rs
+++ b/rust/hw/char/pl011/src/device.rs
@@ -10,7 +10,7 @@
 use hwcore::{prelude::*, ClockEvent, IRQState};
 use migration::{self, prelude::*};
 use qom::{prelude::*, ObjectImpl, Owned, ParentField, ParentInit};
-use system::{hwaddr, MemoryRegion, MemoryRegionOps, MemoryRegionOpsBuilder};
+use system::prelude::*;
 use util::prelude::*;
 
 use crate::registers::{self, Interrupt, RegisterOffset};
diff --git a/rust/hw/timer/hpet/src/device.rs b/rust/hw/timer/hpet/src/device.rs
index b7153a46e31..c5cdb87b073 100644
--- a/rust/hw/timer/hpet/src/device.rs
+++ b/rust/hw/timer/hpet/src/device.rs
@@ -16,8 +16,9 @@
 use migration::{self, prelude::*};
 use qom::{prelude::*, ObjectImpl, ParentField, ParentInit};
 use system::{
-    bindings::{address_space_memory, address_space_stl_le, hwaddr},
-    MemoryRegion, MemoryRegionOps, MemoryRegionOpsBuilder, 
MEMTXATTRS_UNSPECIFIED,
+    bindings::{address_space_memory, address_space_stl_le},
+    MEMTXATTRS_UNSPECIFIED,
+    prelude::*,
 };
 use util::prelude::*;
 
diff --git a/rust/system/meson.build b/rust/system/meson.build
index 73d61991146..6624fa6cee5 100644
--- a/rust/system/meson.build
+++ b/rust/system/meson.build
@@ -30,6 +30,7 @@ _system_rs = static_library(
       'src/lib.rs',
       'src/bindings.rs',
       'src/memory.rs',
+      'src/prelude.rs',
     ],
     {'.': _system_bindings_inc_rs}
   ),
diff --git a/rust/system/src/lib.rs b/rust/system/src/lib.rs
index aafe9a866c9..5fb83b65d8d 100644
--- a/rust/system/src/lib.rs
+++ b/rust/system/src/lib.rs
@@ -4,3 +4,8 @@
 
 mod memory;
 pub use memory::*;
+
+// preserve one-item-per-"use" syntax, it is clearer
+// for prelude-like modules
+#[rustfmt::skip]
+pub mod prelude;
diff --git a/rust/system/src/prelude.rs b/rust/system/src/prelude.rs
new file mode 100644
index 00000000000..2d98524c36e
--- /dev/null
+++ b/rust/system/src/prelude.rs
@@ -0,0 +1,8 @@
+//! Essential types and traits intended for blanket imports.
+
+// Core memory types
+pub use crate::memory::hwaddr;
+pub use crate::memory::MemoryRegion;
+pub use crate::memory::MemoryRegionOps;
+pub use crate::memory::MemoryRegionOpsBuilder;
+pub use crate::memory::MemTxAttrs;
-- 
2.51.1


Reply via email to