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