main.rs 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. use std::{
  2. fs::{self},
  3. path::PathBuf,
  4. time::Instant,
  5. };
  6. use binrw::BinRead;
  7. use clap::Parser;
  8. use ezcad::file::Header;
  9. use log::info;
  10. #[derive(Debug, Parser)]
  11. struct Cli {
  12. /// Input file to parse
  13. #[arg(short, long)]
  14. input: PathBuf,
  15. // /// Output file to write to
  16. // #[arg(short, long)]
  17. // output: PathBuf,
  18. // /// Configuration file
  19. // #[arg(short, long)]
  20. // config: PathBuf,
  21. #[command(flatten)]
  22. verbose: clap_verbosity_flag::Verbosity,
  23. }
  24. fn main() {
  25. env_logger::builder()
  26. .format_timestamp(None)
  27. .filter_level(log::LevelFilter::Info)
  28. .init();
  29. let args: Cli = Cli::parse();
  30. let mut input = fs::File::open(args.input).unwrap();
  31. // let _config = read(args.config).unwrap();
  32. let time = Instant::now();
  33. let file = Header::read_le(&mut input).unwrap();
  34. info!("Execution time: {:?}", time.elapsed());
  35. // for i in 0..50 {
  36. // dbg!(&file.pens_offset.start_offset.pens[i].disabled);
  37. // }
  38. // dbg!(String::from(&file.pens_offset.start_offset.pens[0].name));
  39. // dbg!(&file.pens_offset.start_offset.pens[255].wobble_type);
  40. for layer in file.layers.iter() {
  41. for object in layer.objects.iter() {
  42. info!("{object}");
  43. }
  44. }
  45. }