#![feature(type_ascription)]
#![feature(associated_type_bounds)]
#![feature(register_attr)]
#![register_attr(get)]
#![feature(proc_macro_hygiene)]
#![deny(
missing_docs,
missing_debug_implementations,
missing_copy_implementations,
trivial_casts,
trivial_numeric_casts,
unused_import_braces,
unused_qualifications,
nonstandard_style,
rust_2018_idioms,
unused,
warnings
)]
#![deny(clippy::pedantic)]
#![allow(
clippy::module_name_repetitions,
clippy::doc_markdown,
clippy::cast_possible_truncation,
clippy::cast_sign_loss,
clippy::cast_possible_wrap,
clippy::module_inception,
clippy::identity_op
)]
#![recursion_limit = "512"]
#[cfg(any(feature = "xferlib", feature = "xfer"))]
pub use cpclib_xfer as xfer;
pub use {
cpclib_asm as assembler, cpclib_basic as basic, cpclib_common as common, cpclib_disc as disc,
cpclib_image as image, cpclib_sna as sna, cpclib_z80emu as z80emu
};
pub mod asm;
pub use cpclib_image::ga::{Ink, Palette, Pen};
pub use crate::disc::edsk::ExtendedDsk;
pub mod util {
pub fn string_to_nb(source: &str) -> u32 {
let error = format!("Unable to read the value: {}", source);
if source.starts_with("0x") {
u32::from_str_radix(&source[2..], 16).expect(&error)
}
else {
source.parse::<u32>().expect(&error)
}
}
}
#[cfg(test)]
mod test {
#[test]
fn test_wait() {
use cpclib_asm::preamble::*;
use cpclib_z80emu::execute_dummy_listing;
assert_eq!(
20,
execute_dummy_listing(&routines::wait(20))
.unwrap()
.duration()
);
}
}