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};
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::*;
'src/lib.rs',
'src/bindings.rs',
'src/memory.rs',
+ 'src/prelude.rs',
],
{'.': _system_bindings_inc_rs}
),
mod memory;
pub use memory::*;
+
+// preserve one-item-per-"use" syntax, it is clearer
+// for prelude-like modules
+#[rustfmt::skip]
+pub mod prelude;
--- /dev/null
+//! 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;