devices6502/lib.rs
1#![no_std]
2
3//! # devices6502
4//!
5//! A crate providing implementations of various memory-mapped devices for 6502-based systems.
6//!
7//! This crate includes common device types that can be used to build memory maps for 6502 emulators
8//! or similar projects. It provides:
9//!
10//! - `Ram`: Random Access Memory implementation
11//! - `Rom`: Read Only Memory implementation
12//! - `Mirror`: Memory mirroring functionality
13//! - `Socket`: A device that can be hot-swapped at runtime (requires `alloc` feature)
14//! - `Adjacent`: Helper for combining multiple devices
15//! - `ReadWrite`: A device that routes read and write operations to different devices
16//! - `Device`: Trait defining common device behavior
17//!
18//! All devices implement the `Device` trait which provides a consistent interface for
19//! memory operations.
20
21#[cfg(feature = "alloc")]
22extern crate alloc;
23
24#[deny(missing_docs)]
25mod adjacent;
26
27#[deny(missing_docs)]
28mod device;
29
30#[deny(missing_docs)]
31mod mirror;
32
33#[deny(missing_docs)]
34mod ram;
35
36#[deny(missing_docs)]
37mod read_write;
38
39#[deny(missing_docs)]
40mod rom;
41
42#[cfg(feature = "alloc")]
43#[deny(missing_docs)]
44mod socket;
45
46pub use adjacent::Adjacent;
47pub use device::Device;
48pub use mirror::Mirror;
49pub use ram::Ram;
50pub use read_write::ReadWrite;
51pub use rom::Rom;
52
53#[cfg(feature = "alloc")]
54pub use socket::Socket;
55
56pub use device::size_const;
57pub use device::size_const::*;