pub mod constants;
mod config;
mod device;
mod error;
mod program;
mod usb;
pub use config::Config;
pub use device::{Device, DeviceMode, IoSettings};
pub use error::{Error, Result};
pub use program::Programmer;
pub use usb::{
HotplugEvent, HotplugEventKind, HotplugOptions, HotplugRegistration, TransportConfig,
};
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn device_is_created_closed() {
let device = Device::new().expect("failed to initialise USB context");
assert!(!device.is_open());
assert!(!device.is_initialized());
assert_eq!(device.mode(), DeviceMode::Closed);
}
#[test]
fn config_mutation_roundtrip() {
let mut device = Device::new().expect("failed to initialise USB context");
device.update_cached_config(|config| config.set_vericomm_clock_high_delay(42));
assert_eq!(device.config().vericomm_clock_high_delay(), 42);
}
#[test]
fn programmer_wraps_device() {
let device = Device::new().expect("failed to initialise USB context");
let programmer = Programmer::new(device);
assert!(!programmer.device().is_open());
}
}