#![feature(bigint_helper_methods)] #![feature(unchecked_shifts)] #![feature(seek_stream_len)] #![feature(io_error_more)] mod debug; mod devices; mod emulators; mod metadata; pub use debug::DebugState; pub use devices::*; pub use emulators::*; pub use metadata::*; use std::num::NonZeroU32; use std::time::Duration; pub const BATCH_SIZE: usize = 1000; pub const MIN_TICK_DURATION: Duration = Duration::from_millis( 4 ); pub const MIN_FRAME_DURATION: Duration = Duration::from_millis( 14 ); pub const MAX_FRAME_DURATION: Duration = Duration::from_millis( 500 ); pub const DEFAULT_SCREEN_SIZE: ScreenDimensions = ScreenDimensions::new(800,600); pub const DEFAULT_SCREEN_SCALE: NonZeroU32 = unsafe { NonZeroU32::new_unchecked(1) }; pub type ScreenPosition = geometry::Point; pub type ScreenDimensions = geometry::Dimensions; #[macro_export] macro_rules! error { ($source:expr, $($tokens:tt)*) => {{ eprint!("[ERROR] [{}]: ", $source); eprintln!($($tokens)*); }}; }