From: Paolo Bonzini Date: Tue, 4 Nov 2025 15:37:24 +0000 (+0100) Subject: util: add prelude X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6b4a0683aff0d907d289fff4b84e07bc40ff8ff4;p=thirdparty%2Fqemu.git util: add prelude Signed-off-by: Paolo Bonzini --- diff --git a/rust/hw/char/pl011/src/device.rs b/rust/hw/char/pl011/src/device.rs index 04155dabe1..18f40fdc58 100644 --- a/rust/hw/char/pl011/src/device.rs +++ b/rust/hw/char/pl011/src/device.rs @@ -17,7 +17,7 @@ use migration::{ }; use qom::{prelude::*, ObjectImpl, Owned, ParentField, ParentInit}; use system::{hwaddr, MemoryRegion, MemoryRegionOps, MemoryRegionOpsBuilder}; -use util::{log::Log, log_mask_ln, ResultExt}; +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 3564aa79c6..6e9c004eca 100644 --- a/rust/hw/timer/hpet/src/device.rs +++ b/rust/hw/timer/hpet/src/device.rs @@ -25,10 +25,7 @@ use system::{ bindings::{address_space_memory, address_space_stl_le, hwaddr}, MemoryRegion, MemoryRegionOps, MemoryRegionOpsBuilder, MEMTXATTRS_UNSPECIFIED, }; -use util::{ - ensure, - timer::{Timer, CLOCK_VIRTUAL, NANOSECONDS_PER_SECOND}, -}; +use util::prelude::*; use crate::fw_cfg::HPETFwConfig; diff --git a/rust/hw/timer/hpet/src/fw_cfg.rs b/rust/hw/timer/hpet/src/fw_cfg.rs index 777fc8ef45..ad80acd998 100644 --- a/rust/hw/timer/hpet/src/fw_cfg.rs +++ b/rust/hw/timer/hpet/src/fw_cfg.rs @@ -5,7 +5,7 @@ use std::ptr::addr_of_mut; use common::Zeroable; -use util::{self, ensure}; +use util::{self, prelude::*}; /// Each `HPETState` represents a Event Timer Block. The v1 spec supports /// up to 8 blocks. QEMU only uses 1 block (in PC machine). diff --git a/rust/util/meson.build b/rust/util/meson.build index 18d67a4b37..95b44f7c67 100644 --- a/rust/util/meson.build +++ b/rust/util/meson.build @@ -34,6 +34,7 @@ _util_rs = static_library( 'src/error.rs', 'src/log.rs', 'src/module.rs', + 'src/prelude.rs', 'src/timer.rs', ], {'.': _util_bindings_inc_rs} diff --git a/rust/util/src/lib.rs b/rust/util/src/lib.rs index d14aa14ca7..7d2de3ed81 100644 --- a/rust/util/src/lib.rs +++ b/rust/util/src/lib.rs @@ -4,6 +4,11 @@ pub mod bindings; pub mod error; pub mod log; pub mod module; + +// preserve one-item-per-"use" syntax, it is clearer +// for prelude-like modules +#[rustfmt::skip] +pub mod prelude; pub mod timer; pub use error::{Error, Result, ResultExt}; diff --git a/rust/util/src/prelude.rs b/rust/util/src/prelude.rs new file mode 100644 index 0000000000..f52e7100e9 --- /dev/null +++ b/rust/util/src/prelude.rs @@ -0,0 +1,11 @@ +//! Essential types and traits intended for blanket imports. + +pub use crate::error::ResultExt; +pub use crate::log::Log; +pub use crate::timer::Timer; +pub use crate::timer::CLOCK_VIRTUAL; +pub use crate::timer::NANOSECONDS_PER_SECOND; + +// Re-export commonly used macros +pub use crate::ensure; +pub use crate::log_mask_ln;