From: Paolo Bonzini Date: Tue, 4 Nov 2025 15:37:24 +0000 (+0100) Subject: common: add prelude X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d30bb44c576cf9e2d8d6d5ae88dba1c02ad3422c;p=thirdparty%2Fqemu.git common: add prelude Signed-off-by: Paolo Bonzini --- diff --git a/rust/common/meson.build b/rust/common/meson.build index 4b1cd35f63..57091b18fc 100644 --- a/rust/common/meson.build +++ b/rust/common/meson.build @@ -4,18 +4,7 @@ _common_cfg = run_command(rustc_args, _common_rs = static_library( 'common', - structured_sources( - [ - 'src/lib.rs', - 'src/assertions.rs', - 'src/bitops.rs', - 'src/callbacks.rs', - 'src/errno.rs', - 'src/opaque.rs', - 'src/uninit.rs', - 'src/zeroable.rs', - ], - ), + 'src/lib.rs', rust_args: _common_cfg, dependencies: [libc_rs, qemu_macros], ) diff --git a/rust/common/src/lib.rs b/rust/common/src/lib.rs index 8311bf945d..6093d01a38 100644 --- a/rust/common/src/lib.rs +++ b/rust/common/src/lib.rs @@ -15,6 +15,11 @@ pub use errno::Errno; pub mod opaque; pub use opaque::{Opaque, Wrapper}; +// preserve one-item-per-"use" syntax, it is clearer +// for prelude-like modules +#[rustfmt::skip] +pub mod prelude; + pub mod uninit; pub use uninit::MaybeUninitField; diff --git a/rust/common/src/prelude.rs b/rust/common/src/prelude.rs new file mode 100644 index 0000000000..7d38ea1205 --- /dev/null +++ b/rust/common/src/prelude.rs @@ -0,0 +1,9 @@ +//! Essential types and traits intended for blanket imports. + +pub use crate::bitops::IntegerExt; +pub use crate::uninit::MaybeUninitField; + +// Re-export commonly used macros +pub use crate::static_assert; +pub use crate::uninit_field_mut; +pub use qemu_macros::TryInto; diff --git a/rust/hw/char/pl011/src/device.rs b/rust/hw/char/pl011/src/device.rs index 18f40fdc58..b7e8e393d2 100644 --- a/rust/hw/char/pl011/src/device.rs +++ b/rust/hw/char/pl011/src/device.rs @@ -6,7 +6,7 @@ use std::{ffi::CStr, mem::size_of}; use bql::BqlRefCell; use chardev::{CharFrontend, Chardev, Event}; -use common::{static_assert, uninit_field_mut}; +use common::prelude::*; use hwcore::{ Clock, ClockEvent, DeviceImpl, DeviceMethods, DeviceState, IRQState, InterruptSource, ResetType, ResettablePhasesImpl, SysBusDevice, SysBusDeviceImpl, SysBusDeviceMethods, diff --git a/rust/hw/timer/hpet/src/device.rs b/rust/hw/timer/hpet/src/device.rs index 6e9c004eca..e9c7afa24d 100644 --- a/rust/hw/timer/hpet/src/device.rs +++ b/rust/hw/timer/hpet/src/device.rs @@ -11,7 +11,7 @@ use std::{ }; use bql::{BqlCell, BqlRefCell}; -use common::{bitops::IntegerExt, uninit_field_mut}; +use common::prelude::*; use hwcore::{ DeviceImpl, DeviceMethods, DeviceState, InterruptSource, ResetType, ResettablePhasesImpl, SysBusDevice, SysBusDeviceImpl, SysBusDeviceMethods,