From 2c81690c9b8f17caf4ce43751ccdfe3a9d236140 Mon Sep 17 00:00:00 2001 From: diogo464 Date: Wed, 31 Jan 2024 07:49:14 +0000 Subject: init --- src/main.rs | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 src/main.rs (limited to 'src') diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..6ac0b4a --- /dev/null +++ b/src/main.rs @@ -0,0 +1,40 @@ +use std::{io::Write, path::PathBuf}; + +use clap::Parser; + +#[derive(Debug, Parser)] +struct Args { + file: Option, +} + +fn main() -> Result<(), Box> { + let stdout = std::io::stdout(); + let handle = stdout.lock(); + let mut writer = std::io::BufWriter::new(handle); + + let args = Args::parse(); + let mut reader = match args.file { + Some(file) => { + let path = PathBuf::from(file); + let file = std::fs::File::open(path)?; + Box::new(std::io::BufReader::new(file)) as Box + } + None => Box::new(std::io::BufReader::new(std::io::stdin())) as Box, + }; + + let mut buf = [0u8; 1024]; + write!(writer, "let _ : &'static [u8] = &[")?; + loop { + let n = reader.read(&mut buf)?; + if n == 0 { + break; + } + for i in 0..n { + write!(writer, "{:#02X},", buf[i])?; + } + } + write!(writer, "];")?; + writer.flush()?; + + Ok(()) +} -- cgit