summaryrefslogtreecommitdiff
path: root/src/lib.rs
blob: 4ff35eb7c71262680df86563780b9299c94d2109 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#![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<u16>;
pub type ScreenDimensions = geometry::Dimensions<u16>;

#[macro_export]
macro_rules! error {
    ($source:expr, $($tokens:tt)*) => {{
        eprint!("[ERROR] [{}]: ", $source);
        eprintln!($($tokens)*);
    }};
}