2018-11-15 13:49:00 +11:00
|
|
|
#![cfg_attr(not(test), no_std)]
|
2018-11-18 11:14:42 +11:00
|
|
|
#![cfg_attr(not(test), feature(asm))]
|
2018-11-14 06:47:52 +11:00
|
|
|
#![warn(missing_docs)]
|
2018-12-17 09:17:30 +11:00
|
|
|
//#![allow(clippy::cast_lossless)]
|
2018-12-08 19:53:37 +11:00
|
|
|
#![deny(clippy::float_arithmetic)]
|
2018-11-14 06:47:52 +11:00
|
|
|
|
|
|
|
//! This crate helps you write GBA ROMs.
|
|
|
|
//!
|
|
|
|
//! # SAFETY POLICY
|
|
|
|
//!
|
|
|
|
//! Some parts of this crate are safe wrappers around unsafe operations. This is
|
|
|
|
//! good, and what you'd expect from a Rust crate.
|
|
|
|
//!
|
|
|
|
//! However, the safe wrappers all assume that you will _only_ attempt to
|
|
|
|
//! execute this crate on a GBA or in a GBA Emulator.
|
|
|
|
//!
|
|
|
|
//! **Do not** use this crate in programs that aren't running on the GBA. If you
|
|
|
|
//! do, it's a giant bag of Undefined Behavior.
|
2018-11-15 13:49:00 +11:00
|
|
|
//!
|
|
|
|
//! # TESTING POLICY
|
|
|
|
//!
|
|
|
|
//! It is the intent of the crate authors that as much of the crate as possible
|
|
|
|
//! be written so that you can use `cargo test` for at least some parts of your
|
|
|
|
//! code without everything exploding instantly. To that end, where possible we
|
|
|
|
//! attempt to use `cfg` flags to make things safe for `cargo test`. Hopefully
|
|
|
|
//! we got it all.
|
2018-11-14 06:47:52 +11:00
|
|
|
|
|
|
|
pub mod core_extras;
|
|
|
|
pub(crate) use crate::core_extras::*;
|
|
|
|
|
2018-12-17 09:17:30 +11:00
|
|
|
#[cfg(not(test))]
|
|
|
|
pub mod bios;
|
|
|
|
|
2018-11-14 06:47:52 +11:00
|
|
|
pub mod io_registers;
|
|
|
|
|
|
|
|
pub mod video_ram;
|
2018-11-15 19:23:04 +11:00
|
|
|
pub(crate) use crate::video_ram::*;
|