use bossa::lib;
use cxx::let_cxx_string;
pub fn main() -> std::process::ExitCode {
let mut samba = lib::new_samba();
let mut port_factory = lib::new_port_factory();
let_cxx_string!(port = port_factory.pin_mut().default_name().to_string());
if !samba
.pin_mut()
.connect(port_factory.pin_mut().create_port(&port, true), 115200)
{
println!("Failed to connect to port: {}", port);
return std::process::ExitCode::FAILURE;
}
let mut device = lib::new_device(samba.pin_mut());
device.pin_mut().create();
let mut observer = lib::new_bossa_observer();
let mut flasher = lib::new_flasher(samba.pin_mut(), device.pin_mut(), observer.pin_mut());
let mut flasher_info = lib::new_flasher_info();
flasher.pin_mut().info(flasher_info.pin_mut());
flasher_info.pin_mut().print();
let mut info = lib::FlasherInfoRs::default();
lib::flasherinfo2flasherinfors(&flasher_info.pin_mut(), &mut info);
println!("{:#?}", info);
println!("Unique Id: {}", info.unique_id());
println!("{}", info.info());
std::process::ExitCode::SUCCESS
}